.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
相关产品推荐
相关产品推荐

