在WPF中获取TreeViewItem的Header高度

4

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

FrameworkElement headerElement = 
     _myTreeViewItem.HeaderTemplate.GetVisualTreeRootNode();

我该如何实现这个目标?
1个回答

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

谢谢,有关于这个行为的文档资料吗? - PeterM
我已经在上面的答案中添加了一些文档参考。 - cunningdave

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接