如何在WPF窗口XAML中隐藏属性?

3
据我所见,所有自定义控件属性都可以直接从WPF窗口XAML进行编辑。有没有办法隐藏其中的一些属性?我们有一些属性在应用程序启动时完全没有意义,需要在运行时更改。
我能想到的唯一主意是将它们更改为方法?你觉得呢?
谢谢。

3
你尝试过使用[BrowsableAttribute(false)]为成员添加注释吗? - Pragmateek
是的,这样可以隐藏它们在Visual Studio对象属性中的显示,但你仍然可以在XAML中调用并设置它们。 - abenci
你如何“召回”它们?你使用什么控件来编辑属性? - Krishna
我是说,在编写自定义控件的XAML时,您可以访问任何属性并更改它们。 - abenci
如果属性是公共的,为什么不能被编辑/暴露? - Mashton
我们的业务有一些特定属性,在设计环境(XAML)中完全没有意义。 - abenci
2个回答

3

您可以使用 EditorBrowsableAttribute 将 XAML 编辑器中的属性隐藏起来。将此属性设置为 EditorBrowsableState.Never 将会隐藏它。

[EditorBrowsable(EditorBrowsableState.Never)]
public int BusinessProperty {get; set;}

更多信息请参见:EditorBrowsableAttribute


0
尝试类似这样的代码:
 class Name {
   public int x;
 }

x将成为一个字段,而不是一个属性。


如果在更改“x”之后需要添加一些逻辑怎么办? - abenci
我认为仅仅为了在XAML设计器中抑制IntelliSense而将属性更改为字段是不合理的。使用属性而不是字段有很好的理由。 - Marc
这是一个解决方案。好的,它显然有缺点。但无论如何,它都是一个解决方案,不是吗?) - norekhov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接