我在listview中有几百个元素,我想知道哪些元素在屏幕上以及在什么位置。如果我做Canvas.getLeft()
,它只返回零。我希望能够将最接近屏幕中间的项目进行变换,使其比其他项目更大。
答案 0 :(得分:2)
如果您希望获得元素相对于Window
的位置,则可以执行以下操作:
Point relativePos = yourElement
.TransformToAncestor(yourWindow)
.Transform(new Point(0, 0));
yourWindow
可以替换为包含yourElement
的任何父视觉效果 - 例如,如果您想要相对于ListView
的位置,则可以将其替换为yourListView
等等。
答案 1 :(得分:0)
如果您想获取ListViewItem
(或任何Visual
)的左上角点的屏幕坐标,您只需使用 {{3}方法即可} 并传入一个空的Point:
var pointInScreen = yourListViewItem.PointToScreen(new Point());