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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#UWP窗口位置在屏幕上问题相关的知识,希望对你有一定的参考价值。

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

在WPF中有:

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

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

有什么想法吗?

答案

试试这个:

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

另一答案

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

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

以上是关于c#UWP窗口位置在屏幕上问题的主要内容,如果未能解决你的问题,请参考以下文章

从另一个片段返回时返回到屏幕上的当前位置

如何在启动时设置 Windows 位置

怎样用C语言获取屏幕上指定位置处的字符的值?

应用程序窗口未聚焦时如何在 UWP 中更改\控制鼠标位置?

UWP中弹出框屏幕适配问题

在桌面上为 Windows 10 UWP 应用设置窗口大小