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

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

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

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

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

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


为此,有TransformToAncestor方法:


Point relativePoint = myVisual.TransformToAncestor(rootVisual)

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

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



查看完整回答
反对 回复 2019-12-17
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

要获取窗口中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-12-17
  • 3 回答
  • 0 关注
  • 572 浏览

添加回答

举报

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