【问题标题】:Xamarin Forms Increase Hit Area of ImageXamarin Forms 增加图像的命中区域
【发布时间】:2016-04-14 19:13:01
【问题描述】:

我正在开发一个Xamarin.Forms 应用程序,其中我使用图像作为可点击图标来关闭弹出窗口。我通过TapGestureRecognizer 使图片可点击,如下所示:

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

xaml.cs 中的 OnClosePopupTapped 函数被正确命中。

我的问题是只有图片的左上角触发了这个功能(图片的命中区域不是全图)。

有谁知道将点击区域增加到完整图像而不是仅仅左上角的解决方案?

【问题讨论】:

    标签: xamarin win-universal-app xamarin.forms uitapgesturerecognizer uwp-xaml


    【解决方案1】:

    实现更大的点击框的一种简单方法是将图像包装在另一个控件中,例如&lt;StackLayout&gt;&lt;Frame&gt;,并为父级应用适当的填充。然后,将您的手势识别器应用于父级并将您的图像设置为 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"/>
    

    【讨论】:

    猜你喜欢
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    相关资源
    最近更新 更多