2008-11-21 36 views
1

是否有可能以编程方式操作WPF窗口的控件树?操作WPF元素树

我有一个包含任意WPF XAML代码的字符串。我在内容控件中显示内容。目前没有问题。 此外,我想装饰包含在XAML代码片段中的每个网格控件,让我们说一个特殊的边框。

这样做有什么可能的方法?

回答

0

您可以走控制树,如果当前控件的类型为Grid,则将边框添加到该控件树中。

下面是一些伪代码,看起来令人震惊,如C#和可以实际编译工作:

private void AddGrid(Control c){ 
    foreach(var child in c.Children) 
    AddGrid(child); 
    if(this is Grid) 
    this.Border = new Border(/* whatever */); 
} 

另外,在包含动态XAML控制的资源,你可以添加改变了外观的风格所有网格,并添加你想要的边框。 This is a good resource for learning how to do this.请记住,如果将样式添加到窗口的资源或应用程序的资源中,它将分别影响窗口或应用程序中的所有控件。将它添加到动态xaml的直接父项中(以前从未尝试过)仅影响其子控件的模板。