こんにちは。エクセルソフトの田淵です。
Xamarin.Forms の Button は当然タップできますが、Label とか Image とかにタップイベントを追加したい時、ありますよね。
TapGestureRecognizer を使いましょう
C#:
var tgr = new TapGestureRecognizer ();
tgr.Tapped += (sender, e) => OnLabelClicked();
label.GestureRecognizers.Add(tgr);
XAML:
<Label Text="test"> <Label.GestureRecognizers> <TapGestureRecognizer Tapped="OnLabelClicked"/> </Label.GestureRecognizers> </Label>
後はコードビハインドに OnLabelClicked
のメソッドを以下のような感じで用意してあげれば OK です。
private void OnLabelClicked(object sender, EventArgs e) { var str = ((Label)sender).Text; DisplayAlert("Tapped", str + " is Tapped", "OK"); }
参考資料
- best way to make clickable text? - Xamarin Forums ← C###
- Gesture Recognizers in XAML? - Xamarin Forums ← XAML
Xamarin 気になった方は
是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。 学習用リソース や JXUG リンクページ に参考資料を纏めてますので併せてどうぞ。
Xamarin の情報が欲しい方はこのブログも購読いただいたりすると嬉しいです。
以上です。