在.NET Maui中获取单击图像时的鼠标光标坐标

mqxuamgl  于 2023-01-27  发布在  .NET
关注(0)|答案(1)|浏览(279)

我正在开发一个软件,当用户点击图片时,我需要能够获得鼠标光标的x和y坐标。我知道你可以用pictureBox以可视化的形式做到这一点,但在毛伊岛可以吗?
我正在网上积极寻找答案,如果找到了答案,我会为有同样问题的人编辑帖子。

2guxujil

2guxujil1#

这就是. NET MAUI for. NET 7的新特性。对于鼠标光标,现在我们可以检测点击(点击)并悬停在控件上,就像@ToolmakerSteve在评论中建议的那样。
举个简单的例子:
在xaml中:

<Image
    Source="dotnet_bot.png"
    SemanticProperties.Description="Cute dot net bot waving hi to you!"
    HeightRequest="200"
    HorizontalOptions="Center" >
        <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/>
        </Image.GestureRecognizers>
</Image>

在. cs文件中:

void TapGestureRecognizer_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
{
    // Position relative to the container view, that is the image, the 
    Point? relativeToContainerPosition = e.GetPosition((View)sender);
    Console.WriteLine(relativeToContainerPosition.Value.X);
    Console.WriteLine(relativeToContainerPosition.Value.Y);
}

此外,如果您想检测指针何时进入、退出和在视图中移动,您还可以使用PointerGestureRecognizer

<Image Source="dotnet_bot.png">
    <Image.GestureRecognizers>
        <PointerGestureRecognizer PointerEntered="OnPointerEntered"
                              PointerExited="OnPointerExited"
                              PointerMoved="OnPointerMoved" />
     </Image.GestureRecognizers>
</Image>

此外,当指针在视图中移动时,可以使用获取手势位置来获取手势位置。
有关详细信息,请参阅Recognize a tap gestureRecognize a pointer gesture
希望对你有用。

相关问题