在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/