标签TapGesture不会触发Xamarin Forms

时间:2017-07-28 15:02:15

标签: c# xaml xamarin xamarin.forms

我试图将TapGestureRecognizer添加到Label

 SliderAbout.GestureRecognizers.Add(new TapGestureRecognizer
 {
     Command = new Command(() => OpenAboutAppAsync()),
 });

SliderAbout是我的Label,它在Xaml中设置并且工作正常。

 <ScrollView Grid.Row="1">
                <Grid VerticalOptions="Start" HorizontalOptions="Start" Margin="20,20,0,0">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="60"/>
                    </Grid.RowDefinitions>

                    <Label x:Name="SliderAbout" 
                           Text="Über die APP" 
                           Grid.Row="2"  
                           TextColor="White" 
                           FontFamily="Open Sans Light" 
                           FontSize="Medium"/>    
                </Grid>
            </ScrollView>

代码也会运行(我把它放在类构造函数中)

但是,当我点击标签时,方法不会触发......为什么不点火?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果您正在使用mvvm方法,则可以将手势识别器直接添加到xaml以及后面代码中的操作或视图模型中。在你的情况下,它将是这样的:

<Label x:Name="SliderAbout" Text="Über die APP" Grid.Row="2"  TextColor="White" FontFamily="Open Sans Light" FontSize="Medium">
    <Label.GestureRecognizers>
        <TapGestureRecognizer Tapped="OnLabelTapped" />
    </LabelGestureRecognizers>
</Label>

在您的代码中

private void OnLabelTapped (object sender, EventArgs e)
{
    //Your code here
}