いくつPhoneApplicationPage
かのグリッド、画像、およびいくつかのボタンがあります。ボタンの外側、ページ内の任意の場所 (画像、グリッドなど) をタップすると、新しいページが開きます。
ページのどこかでタップ/クリックを検出するにはどうすればよいですか?
いくつPhoneApplicationPage
かのグリッド、画像、およびいくつかのボタンがあります。ボタンの外側、ページ内の任意の場所 (画像、グリッドなど) をタップすると、新しいページが開きます。
ページのどこかでタップ/クリックを検出するにはどうすればよいですか?
それを行うには、少なくとも2つの方法があります。
MouseLeftButtonUp
でイベントを聞きますPhoneApplicationPage
。ボタンではなく、画像とラベルによってトリガーする必要がありますTap
でイベントを聞きますPhoneApplicationPage
。ただし、このイベントは、ユーザーがボタンをタップした場合でもトリガーされます。これを防ぐには、イベント ハンドラーのタップ座標でコントロールのリストを取得し、ボタンがない場合にのみ新しいページを開くことができます。
private void PhoneApplicationPage_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
var element = (UIElement)sender;
var controls = VisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(element), element);
if(controls.OfType<Button>().Any())
{
return;
}
// Open the new page
}