2008-11-21 38 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的直接父項中(以前從未嘗試過)僅影響其子控件的模板。