在 WPF 中获取 TreeViewItem 的 Header 的高度

Pet*_*erM 4 .net c# wpf

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

FrameworkElement headerElement = 
     _myTreeViewItem.HeaderTemplate.GetVisualTreeRootNode();
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

cun*_*ave 5

private FrameworkElement GetHeaderControl(TreeViewItem item)
{
   return (FrameworkElement)item.Template.FindName("PART_Header", item);
}
Run Code Online (Sandbox Code Playgroud)

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 控件上的模板。