Window.FindName找不到我通过附加属性命名的Border元素

时间:2009-08-13 22:21:35

标签: c# wpf mvvm

我有一个窗口的xaml,里面有一个未命名的边框控件。边框控件使用我编写的附加属性,附加属性基本上将边框控件的Name属性设置为已知值,如“placeholder”。加载窗口后,它会尝试通过附加属性给出的名称找到边框控件。

问题是它似乎不起作用。 Window.FindName返回null。有什么想法吗?

编辑:边框控件确实在Window.FindName被调用之前被命名,所以并不是它没有被及时命名。

作为一种替代解决方案,我正在考虑通过窗口的孩子并找到使用我所附属性的孩子。我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

要验证边框是否正确命名,您可以运行Snoop。这将显示应用程序的可视树以及每个控件的所有属性。

如果您想自己枚举可视树,可以使用VisualTreeHelper类。具体来说,可以调用GetChildrenCount()GetChild()方法来遍历可视树。