我试图找到TreeViewItem的标题部分的高度,以便绘制一个装饰器。我有一个TreeViewItem的实例但是,我不知道如何在代码中获取头元素的VisualTreeRootNode。我正在寻找类似的东西:
FrameworkElement headerElement =
_myTreeViewItem.HeaderTemplate.GetVisualTreeRootNode();
我怎样才能做到这一点?
答案 0 :(得分:4)
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控件上深入分析模板的通用机制。