如何在WPF中获得窗口中元素的绝对位置?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

当双击窗口/根元素时,我想获得元素相对于窗口/根元素的绝对位置。元素在它的父元素中的相对位置似乎是我所能得到的,而我想要达到的是相对于窗口的点。我已经看到了如何在屏幕上获得元素点的解决方案,但在窗口中没有。

提问于
用户回答回答于
用户回答回答于

要获得UI元素在窗口中的绝对位置,可以使用:

Point position = desiredElement.PointToScreen(new Point(0d, 0d));

如果你在用户控件中,并且只想要UI元素在该控件中的相对位置,只需使用:

Point position = desiredElement.PointToScreen(new Point(0d, 0d)),
controlPosition = this.PointToScreen(new Point(0d, 0d));

position.X -= controlPosition.X;
position.Y -= controlPosition.Y;

扫码关注云+社区