2011-03-21 168 views
2

我想要繪製一個裝飾器,找到TreeViewItem的標題部分的高度。我有一個TreeViewItem的實例,但是,我不知道如何獲取代碼中的頭元素的VisualTreeRootNode。我正在尋找類似的東西:獲取WPF中TreeViewItem標題的高度

FrameworkElement headerElement = 
    _myTreeViewItem.HeaderTemplate.GetVisualTreeRootNode(); 

我該如何做到這一點?

回答

3
private FrameworkElement GetHeaderControl(TreeViewItem item) 
{ 
    return (FrameworkElement)item.Template.FindName("PART_Header", item); 
} 

許多默認模板在MSDN上的示例中列出。例如:

http://msdn.microsoft.com/en-us/library/ms788727.aspx

您還可以看到在這裏控制的定義模板部件的名稱:

http://msdn.microsoft.com/en-us/library/system.windows.controls.treeviewitem(v=VS.100).aspx

由於附着在類的屬性之一。這是一種在任何定義良好的WPF控件中深入模板的廣義機制。

+0

謝謝,有沒有關於這個行爲的地方的一些文件? – PeterM 2011-03-21 22:04:45

+0

我在上面的答案中添加了一些文檔參考。 – cunningdave 2011-03-23 18:09:28