Xamarin增加图像的命中区域

问题描述:

我正在研究Xamarin.Forms应用程序,其中我将图像用作可点击的图标来关闭弹出窗口。我已经通过TapGestureRecognizer取得的图像可点击如下图所示:Xamarin增加图像的命中区域

<Image Source="x-icon.png" HeightRequest="15" WidthRequest="15"> 
    <Image.GestureRecognizers> 
    <TapGestureRecognizer Tapped="OnClosePopupTapped"/> 
    </Image.GestureRecognizers> 
</Image> 

OnClosePopupTapped功能在我xaml.cs被正确击中。

我的问题是只有图像的左上角触发功能(图像的命中区域不是完整图像)。

有谁知道一个解决方案,以增加命中区域的全部图像,而不是只是左上角?

一个简单的方法,以实现更大的命中框将包装您图像中的另一个控制,像<StackLayout>或应用于父适当填充一个<Frame>。然后,运用你的手势识别父,并设置你的形象被InputTransparent

应该是这个样子:

<Frame Padding="10"> 
    <Frame.GestureRecognizers> 
     <TapGestureRecognizer Tapped="OnClosePopupTapped"/> 
    </Frame.GestureRecognizers> 

    <Image Source="x-icon.png" HeightRequest="15" WidthRequest="15" InputTransparent="True"/> 
    </Frame> 

InputTransparent当设置为true,将输入传递到下面的元素,在这个情况是帧

而且,我还没有尝试过个人,但我认为,最近的Xamarin.Forms支持图像按钮,这可能是一个简单的解决方案,以及:

<Button Image="x-icon.png" Command="OnClosePopopCommand"/> 
+1

感谢您的回答:对于未来可能会遇到此解决方案的人来说,D是一个很好的选择:对于我来说'InputTransparent'没有任何作用,但是我把这部分拿出来了。 – indubitablee