在UWP中,我试图获取指针的位置。

我已经设法在下一个事件中做到这一点:

    private void Grid_PointerMoved(object sender, PointerRoutedEventArgs e)
    {
        PointerPoint point = e.GetCurrentPoint(mainGrid);
        var x = point.Position.X;
        var y = point.Position.Y;
    }

这样,它会一直被发射。因此,我需要一些属性(property)才能获得该职位。我发现了这一点:
var pointerPosition = Windows.UI.Core.CoreWindow.GetForCurrentThread().PointerPosition;

但是它并不总是返回正确的位置。

还有其他属性可以获取当前鼠标位置吗?

最佳答案

var pointerPosition = Windows.UI.Core.CoreWindow.GetForCurrentThread().PointerPosition;
pointerPosition为您提供客户端坐标,该坐标是屏幕的光标位置X和Y,而不是相对于您的应用程序窗口的位置。

因此,您只需要先使用Window.Current.Bounds即可找到您的应用窗口的坐标,然后-
var x = pointerPosition.X - Window.Current.Bounds.X;
var y = pointerPosition.Y - Window.Current.Bounds.Y;

关于C#uwp指针位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44905071/

10-17 02:17