1

Я работаю над приложением Xamarin.Forms, в котором я использую изображение в качестве значка, который можно щелкнуть, чтобы закрыть всплывающее окно. Я сделал кликабельное изображения с помощью TapGestureRecognizer, как показано ниже:Xamarin Forms Increased Hit Area of ​​Image

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

OnClosePopupTapped функции в моем xaml.cs идет правильно ударить.

Моя проблема заключается в том, что только верхний левый угол изображения запускает функцию (область хитов изображения - не полное изображение).

Кто-нибудь знает о решении увеличить область попадания до полного изображения, а не только в верхнем левом углу?

ответ

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 когда установлено верно будет проходить ввод в поле ниже элемента, который в этом дело Фрейм

Кроме того, я не пробовал еще лично, но я думаю, что последние Xamarin.Forms поддерживает изображения кнопок, которые могли бы быть простым решением, а также:

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

спасибо за ответ: D как fyi для людей, которые могут столкнуться с этим решением в будущем: для меня 'InputTransparent' не работал, но я принял эту часть, и это произошло. – indubitablee

 Смежные вопросы

  • Нет связанных вопросов^_^