检测页面中的点击?

时间:2012-11-04 00:43:29

标签: windows-phone-8

我有PhoneApplicationPage一些网格,图片和几个按钮。如果我在我的按钮外面,在页面的任何地方(图像,网格或其他)点击,我想打开一个新页面。

如何检测页面上任何位置的点击/点击?

1 个答案:

答案 0 :(得分:1)

我至少看到两种方法:

  1. 聆听MouseLeftButtonUp上的PhoneApplicationPage事件。它应该由图像和标签触发,而不是由按钮
  2. 触发
  3. 收听Tap上的PhoneApplicationPage个活动。但是,即使用户点击按钮,也会触发此事件。为了防止这种情况,您可以在事件处理程序的tap坐标处检索控件列表,并且只有在没有按钮时才打开新页面:

    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
    }