我试图找到 TreeViewItem 的标题部分的高度以绘制装饰器。但是,我有一个 TreeViewItem 的实例,我不确定如何在代码中获取标题元素的 VisualTreeRootNode。我正在寻找类似的东西:
FrameworkElement headerElement =
_myTreeViewItem.HeaderTemplate.GetVisualTreeRootNode();
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
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 控件上的模板。