【发布时间】:2016-11-28 20:38:48
【问题描述】:
在 WPF 中,这样的事情会告诉我边框左上角的位置:
var point = myBorder.PointToScreen(new Point());
如何在 UWP 中获得相同的结果?我找不到任何获得它的方法。
谢谢你:)
【问题讨论】:
-
我似乎找不到我最近看到的用来标记欺骗的问题,但我相信是UIElement.TransformToVisual。
在 WPF 中,这样的事情会告诉我边框左上角的位置:
var point = myBorder.PointToScreen(new Point());
如何在 UWP 中获得相同的结果?我找不到任何获得它的方法。
谢谢你:)
【问题讨论】:
您可以通过以下步骤获取 UIElement 的屏幕坐标:
通过以下代码获取UIElement相对于当前应用程序窗口的坐标:
GeneralTransform transform = myBorder.TransformToVisual(Window.Current.Content);
Point coordinatePointToWindow = transform.TransformPoint(new Point(0, 0));
获取当前应用窗口的Rect信息:
Rect rect = Window.Current.CoreWindow.Bounds;
计算你的 UIElement 的坐标:
var left = coordinatePointToWindow.X + rect.Left;
var top = coordinatePointToWindow.Y + rect.Top;
【讨论】:
您可以使用TransformToVisual 方法。使用以下代码
var transformToVisual = myBorder.TransformToVisual(Window.Current.Content);
var borderCoordinats = transformToVisual .TransformPoint(new Point(0, 0));
【讨论】: