我正在使用Xamarin.Forms
应用程序,在该应用程序中,我使用图像作为可点击图标来关闭弹出窗口。我已通过TapGestureRecognizer
点击图片,如下所示:
<Image Source="x-icon.png" HeightRequest="15" WidthRequest="15">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="OnClosePopupTapped"/>
</Image.GestureRecognizers>
</Image>
我的OnClosePopupTapped
中的xaml.cs
功能正在被正确点击。
我的问题是只有图像的左上角会触发功能(图像的命中区域不是完整图像)。
有没有人知道将命中区域增加到完整图像而不仅仅是左上角的解决方案?
答案 0 :(得分:3)
获得更大命中框的简单方法是将图像包装在另一个控件中,例如<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时会将输入传递给下面的元素,在本例中为Frame
另外,我还没有亲自试过,但我认为最新的Xamarin.Forms支持图像按钮,这也可能是一个简单的解决方案:
<Button Image="x-icon.png" Command="OnClosePopopCommand"/>