You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Maui中点击Image时如何获取鼠标光标坐标?

在.NET Maui中点击Image控件获取鼠标坐标的实现方法

完全可行,.NET Maui可以通过**手势识别器(GestureRecognizer)**实现这个需求,替代WinForms中PictureBox的Click事件逻辑,具体实现如下:

  • 给Image控件添加TapGestureRecognizer,监听点击事件
  • 在事件回调中通过TappedEventArgs的GetPosition方法获取坐标

XAML代码示例

<Image Source="your_image_source">
    <Image.GestureRecognizers>
        <!-- 设置点击次数为1,即单击触发 -->
        <TapGestureRecognizer Tapped="Image_Tapped" NumberOfTapsRequired="1"/>
    </Image.GestureRecognizers>
</Image>

后台C#代码示例

private void Image_Tapped(object sender, TappedEventArgs e)
{
    // 获取相对于当前Image控件的坐标
    if (e.GetPosition((Image)sender) is Point relativePos)
    {
        double x = relativePos.X;
        double y = relativePos.Y;
        // 这里可以根据需求处理坐标,比如显示或存储
        Debug.WriteLine($"Image内点击坐标:X={x}, Y={y}");
    }

    // 若需要获取相对于屏幕的全局坐标,可传入null
    // if (e.GetPosition(null) is Point screenPos)
    // {
    //     Debug.WriteLine($"屏幕坐标:X={screenPos.X}, Y={screenPos.Y}");
    // }
}

说明

和WinForms的PictureBox直接绑定Click事件不同,.NET Maui采用手势识别的方式处理触摸/点击交互。GetPosition方法支持两种坐标获取:

  • 传入目标控件(如示例中的Image):得到相对于该控件左上角的坐标
  • 传入null:得到相对于屏幕的全局坐标

内容的提问来源于stack exchange,提问作者Félix-Olivier Noël

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:25:17