c#UWP窗口位置在屏幕上问题

时间:2017-03-10 15:08:35

标签: c# uwp location window screen

如何在屏幕上获取窗口绝对位置?

在WPF中有:

var location = myTextBlock.PointToScreen(new Point(0,0));

但是在UWP中我找不到类似的东西......

对此有什么想法吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

假设ctl是您寻求绝对屏幕坐标的控件:

Dim ttv As GeneralTransform = ctl.TransformToVisual(Window.Current.Content)
Dim WindowCoords As Point = ttv.TransformPoint(New Point(0, 0))
Dim ScreenCoordsX as double = WindowsCoords.X + ApplicationView.GetForCurrentView().VisibleBounds.Left
Dim ScreenCoordsY as double = WindowsCoords.Y + ApplicationView.GetForCurrentView().VisibleBounds.Top

您可以添加ctl.ActualWidth来查找右侧,但如果您已将ScaleTransform应用于控件,则必须将ActualWidth乘以相同的比例,因为ActualWidth isn'受变换的影响。

答案 1 :(得分:0)

您无法在当前的UWP API中获取或设置窗口在屏幕上的位置。你只能部分控制它的大小。

您可以使用AdjacentToLeftDisplayEdgeAdjacentToRightDisplayEdge来查询窗口是否被捕捉到屏幕的一侧。您还可以使用IsFullScreenMode属性来查询应用是否为全屏。