問題
解答
其實,關於這樣的需求,不需要透過 Renderer 就可以做到;在每個控制項中,都會擁有一個
GestureRecognizers
屬性,您可以透過這個屬性,加入想要的手勢操作 XAML 物件,就可以偵測出使用者是否有點擊這個 Label
標籤控制項了。
以底下的 XAML 宣告標籤而言,我們在
Label.GestureRecognizers
屬性內,加入了一個 TapGestureRecognizer
物件,並且使用了 Command
屬性綁定了檢視模型 ViewModel 內的一個 ICommand
的屬性,如此,您就可以在這個 ICommand
中來定義,當使用者點擊了這個文字標籤之後,需要做哪些相關的處理動作。 <Label
Grid.Column="0"
HorizontalOptions="Center" VerticalOptions="Center"
Text="查看明細"
TextColor="Blue"
FontSize="14"
>
<Label.GestureRecognizers>
<TapGestureRecognizer Command="{Binding 查看明細Command}"/>
</Label.GestureRecognizers>
</Label>
Label
控制項中,也看不到有任何 點擊 Tap / Click 相關的事件可以使用;若想要在 Xamarin.Forms 的頁面中開發出這樣的控制項效果,是不是只能夠透過 Renderer 的方式來實現呢?