Xamarin中是否有可以处理触摸事件的容器
本文关键字:事件 触摸 处理 是否 Xamarin | 更新日期: 2023-09-27 17:58:27
我使用的是Xamarin Forms,我想在容器中添加三个具有三种不同颜色的标签,这样当按下容器时,它就会调用一个事件处理程序。
为此,您可以使用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
。
其他手势还有"捏"answers"平移",点击的文档可以在这里找到。
在一个例子中,你要特别尝试这样的东西:
<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>