获取WPF中TreeViewItem的Header的高度

时间:2011-03-21 04:41:07

标签: c# .net wpf

我试图找到TreeViewItem的标题部分的高度,以便绘制一个装饰器。我有一个TreeViewItem的实例但是,我不知道如何在代码中获取头元素的VisualTreeRootNode。我正在寻找类似的东西:

FrameworkElement headerElement = 
     _myTreeViewItem.HeaderTemplate.GetVisualTreeRootNode();

我怎样才能做到这一点?

1 个答案:

答案 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控件上深入分析模板的通用机制。