Je suis nouveau dans xamarin.forms, aidez-moi à ajouter un événement de clic dans la disposition de la pile ou le cadre
<Frame Grid.Column="0" BackgroundColor="#ffffff" Grid.Row="0" HasShadow="true" OutlineColor = "Black">
</Frame>
<StackLayout Grid.Column="0" BackgroundColor="#313FA0" Grid.Row="0">
</StackLayout>
Vous pouvez ajouter un TapGestureRecognizer au StackLayout en XAML comme ceci:
<StackLayout Grid.Column="0" Grid.Row="0" BackgroundColor="#313FA0">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="OnTapped"/>
</StackLayout.GestureRecognizers>
</StackLayout>
Ensuite, vous pouvez implémenter la méthode OnTapped dans le code derrière:
void OnTapped(object sender, EventArgs e)
{
// Do stuff
}
Alternativement, si vous utilisez le modèle MVVM et souhaitez lier le tap à une ICommand dans le ViewModel, cela peut être réalisé comme ceci:
<StackLayout Grid.Column="0" Grid.Row="0" BackgroundColor="#313FA0">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding TapCommand}"/>
</StackLayout.GestureRecognizers>
</StackLayout>
Dans votre ViewModel, vous auriez:
ICommand tapCommand = new Command(OnTapped);
void OnTapped()
{
// Do stuff
}
Il existe de très bons guides sur le site Web de Xamarin:
http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/gestures/#Using_Xaml
https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/gestures/tap/
Eh bien, merci @ pnavk, selon ce que j'ai vu, permettez-moi également de partager cela, les vues (Layouts, Frame, Images etc) qui n'ont pas les événements OnClick ou Click intégrés ont la même manière de gérer l'événement Click.
comme suit:
Pour une image:
<Image>
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="onImageCitizenReporterTapped" NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
</Image>
Pour un cadre:
<Frame>
<Frame.GestureRecognizers>
<TapGestureRecognizer Tapped="onFrameCitizenReporterTapped" NumberOfTapsRequired="1" />
</Frame.GestureRecognizers>
</Frame>
Pour StackLayout:
<StackLayout>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="onStackCitizenReporterTapped" NumberOfTapsRequired="1" />
</StackLayout.GestureRecognizers>
</StackLayout >
Acclamations.