私はxamarin.formsの初心者です。スタックレイアウトまたはフレームにクリックイベントを追加する方法を教えてください
<Frame Grid.Column="0" BackgroundColor="#ffffff" Grid.Row="0" HasShadow="true" OutlineColor = "Black">
</Frame>
<StackLayout Grid.Column="0" BackgroundColor="#313FA0" Grid.Row="0">
</StackLayout>
次のように、XAMLのStackLayoutにTapGestureRecognizerを追加できます。
<StackLayout Grid.Column="0" Grid.Row="0" BackgroundColor="#313FA0">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="OnTapped"/>
</StackLayout.GestureRecognizers>
</StackLayout>
次に、コードビハインドでOnTappedメソッドを実装できます。
void OnTapped(object sender, EventArgs e)
{
// Do stuff
}
あるいは、MVVMパターンを使用していて、タップをViewModelのICommandにバインドする場合は、次のように実行できます。
<StackLayout Grid.Column="0" Grid.Row="0" BackgroundColor="#313FA0">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding TapCommand}"/>
</StackLayout.GestureRecognizers>
</StackLayout>
あなたのViewModelには次のものがあります:
ICommand tapCommand = new Command(OnTapped);
void OnTapped()
{
// Do stuff
}
Xamarin Webサイトには、非常に優れたガイドがあります。
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/
さて、ありがとう@ pnavk、私が見たものによれば、これを共有することもできます、ビュー(レイアウト、フレーム、画像など)組み込みのOnClickイベントまたはClickイベントがない場合でも、クリックイベントに取り組む方法は同じです。
次のように:
画像の場合:
<Image>
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="onImageCitizenReporterTapped" NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
</Image>
フレームの場合:
<Frame>
<Frame.GestureRecognizers>
<TapGestureRecognizer Tapped="onFrameCitizenReporterTapped" NumberOfTapsRequired="1" />
</Frame.GestureRecognizers>
</Frame>
StackLayoutの場合:
<StackLayout>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="onStackCitizenReporterTapped" NumberOfTapsRequired="1" />
</StackLayout.GestureRecognizers>
</StackLayout >
乾杯