Ответ 1
Вы можете добавить TapGestureRecognizer в StackLayout в XAML следующим образом:
<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 и хотите привязать отвод к ICommand во ViewModel, это может быть достигнуто следующим образом:
<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 есть несколько действительно хороших руководств:
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/