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

我想获得一个元素相对于window / root元素在双击时的绝对位置。元素在其父元素中的相对位置是我似乎可以到达的所有位置,而我试图到达的是相对于窗口的点。我已经看到了如何在屏幕上而不是在窗口中获得元素点的解决方案。


万千封印
浏览 578回答 3
3回答

慕哥9229398

我认为BrandonS想要的不是鼠标相对于根元素的位置,而是某些后代元素的位置。为此,有TransformToAncestor方法:Point relativePoint = myVisual.TransformToAncestor(rootVisual)                              .Transform(new Point(0, 0));myVisual双击的元素在哪里,rootVisualApplication.Current.MainWindow或您想要相对的位置。

德玛西亚99

要获取窗口中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;
打开App,查看更多内容
随时随地看视频慕课网APP