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