获取特定ListView项的坐标相对于其拥有的ListView

时间:2013-01-23 15:58:29

标签: wpf drag-and-drop listviewitem adorner adornerlayer

我正在尝试确定代表ListViewItem的容器的物理坐标(特别是我对TOP和BOTTOM感兴趣)。

我通过以下方式引用了ListViewItem:

 ListViewItem item = ((ListView)AdornedElement).ItemContainerGenerator.ContainerFromIndex(idx) as ListViewItem;
 ContentPresenter myContentPresenter = FindVisualChild<ContentPresenter>(item);   

我现在需要获取该项目并找出它的顶部和底部值相对于整个列表视图的内容。这是用于在拖放期间显示拖拽线指示器。

任何人都可以提供任何见解吗?

由于

1 个答案:

答案 0 :(得分:2)

对于将来可能有所帮助的人。我想出来了(字面意思是我发布后)

    Point pointTransformToVisual = lvItem.TransformToVisual((Visual)theListView.Parent).Transform(new Point());

    Rect boundsRect = VisualTreeHelper.GetDescendantBounds(lvItem);
    boundsRect.Offset(transform.X, transform.Y);