【发布时间】:2013-05-23 13:37:49
【问题描述】:
我有一个 WPF TreeView,它表示一个对象图,其中一些对象隐式地相互引用。
对于那些,当我选择其中一个时,我希望能够绘制一个链接它们的箭头:
我查看了Adorners,但我不确定这是正确的方法,因为我找不到获取 TreeView 中两个项目的图形位置的方法...
知道我可以在这里做什么吗?
【问题讨论】:
我有一个 WPF TreeView,它表示一个对象图,其中一些对象隐式地相互引用。
对于那些,当我选择其中一个时,我希望能够绘制一个链接它们的箭头:
我查看了Adorners,但我不确定这是正确的方法,因为我找不到获取 TreeView 中两个项目的图形位置的方法...
知道我可以在这里做什么吗?
【问题讨论】:
首先,您可以通过以下方式获取项目的相对位置:
var myItem = (UIElement)myTreeView.SelectedItem;
var pos1 = myItem.TranslatePoint(new Point(), myTreeView);
var pos2 = myAnyOtherItem.TranslatePoint(new Point(), myTreeView);
如果您无权访问 UIElement,请查找
"get container from data object (WPF TreeView)"
但这是另一个问题,我相信已经有解决方案 ^^
其次,使用装饰器是个好主意
但我确定有足够的样本^^
【讨论】: