2011-03-21 167 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