1

我正在研究Xamarin.Forms應用程序,其中我將圖像用作可點擊的圖標來關閉彈出窗口。我已經通過TapGestureRecognizer取得的圖像可點擊如下圖所示:Xamarin增加圖像的命中區域

<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當設置爲true,將輸入傳遞到下面的元素,在這個情況是幀

而且,我還沒有嘗試過個人,但我認爲,最近的Xamarin.Forms支持圖像按鈕,這可能是一個簡單的解決方案,以及:

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

感謝您的回答:對於未來可能會遇到此解決方案的人來說,D是一個很好的選擇:對於我來說'InputTransparent'沒有任何作用,但是我把這部分拿出來了。 – indubitablee