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

屏幕问题上的c#UWP窗口位置,c#,uwp,location,window,screen,C#,Uwp,Location,Window,Screen,如何获得窗口在屏幕上的绝对位置 WPF中有: var location = myTextBlock.PointToScreen(new Point(0,0)); 但在UWP我找不到任何类似的 有什么想法吗?在当前的UWP API中,您无法在屏幕上获取或设置窗口的位置。您只能部分控制其大小 您可以使用AdjacentToLeftDisplayEdge和AdjacentToRightDisplayEdge查询窗口是否捕捉到屏幕的一侧。您还可以使用IsFullScreenMode属性查询应用程序是否

如何获得窗口在屏幕上的绝对位置

WPF中有:

var location = myTextBlock.PointToScreen(new Point(0,0));
但在UWP我找不到任何类似的


有什么想法吗?

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

您可以使用
AdjacentToLeftDisplayEdge
AdjacentToRightDisplayEdge
查询窗口是否捕捉到屏幕的一侧。您还可以使用
IsFullScreenMode
属性查询应用程序是否全屏。

尝试以下操作:

假设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不受转换的影响。

可能的重复:尝试在此处找到的答案。我将在第页中获取控件的坐标。我需要屏幕上的窗口坐标…答案是给你页面坐标?你是否将
窗口
传递给
TransformToVisual
调用?在全息镜头上有“绝对坐标”意味着什么?你可以得到它。用法:ApplicationView.GetForCurrentView().VisibleBounds您无法设置它。