为了账号安全,请及时绑定邮箱和手机立即绑定

在wpf中获取窗口内元素的绝对位置

在wpf中获取窗口内元素的绝对位置

芜湖不芜 2019-10-30 14:45:16
我想获得一个元素相对于window / root元素在双击时的绝对位置。元素在其父元素中的相对位置是我似乎可以到达的所有位置,而我试图到达的是相对于窗口的点。我已经看到了如何在屏幕上而不是在窗口中获得元素点的解决方案。
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

我认为BrandonS想要的不是鼠标相对于根元素的位置,而是某些后代元素的位置。


为此,有TransformToAncestor方法:


Point relativePoint = myVisual.TransformToAncestor(rootVisual)

                              .Transform(new Point(0, 0));

myVisual双击的元素在哪里,rootVisualApplication.Current.MainWindow或您想要相对的位置。


查看完整回答
反对 回复 2019-10-30
?
四季花海

TA贡献1811条经验 获得超5个赞

要获取窗口中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;


查看完整回答
反对 回复 2019-10-30
  • 3 回答
  • 0 关注
  • 2021 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信