我使用的是Xamarin Forms,我想在容器中添加三种不同颜色的标签,所以当按下容器时,它会调用一个事件处理程序。
答案 0 :(得分:4)
为此,您可以使用Gestures
。
Xamarin.Forms中有几个默认识别器,包括TapGestureRecognizer
。
您可以将它们添加到几乎任何视觉元素中。看看绑定到Image
的简单实现。
var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.Tapped += (s, e) => {
// handle the tap
};
image.GestureRecognizers.Add(tapGestureRecognizer);
或者在XAML中:
<Image Source="tapped.jpg">
<Image.GestureRecognizers>
<TapGestureRecognizer
Tapped="OnTapGestureRecognizerTapped"
NumberOfTapsRequired="2" />
</Image.GestureRecognizers>
</Image>
正如您所看到的,您还可以设置NumberOfTapsRequired
以便在采取措施之前启用它以获得更多点按。
您也可以使用Commands
。
其他手势为Pinch和Pan,有关Tap的文档可以找到here。
在一个例子中,你要问的具体是这样:
<StackLayout>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="handle" />
</StackLayout.GestureRecognizers>
<Label x:Name="myLabel" Text="Open Search" FontSize="30" TextColor="Blue" />
<Label x:Name="myLabel2" Text="URL" FontSize="30" TextColor="Green" />
</StackLayout>
这会处理整个组的手势。
如果您需要Label
,请执行以下操作:
<Label x:Name="myLabel2" Text="URL" FontSize="30" TextColor="Green">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="handle" />
</Label.GestureRecognizers>
</Label>