0

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

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

4

1 回答 1

1

我看到至少有两种方法可以做到这一点:

  1. MouseLeftButtonUp您的PhoneApplicationPage. 它应该由图像和标签触发,而不是由按钮触发
  2. 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
    }
    
于 2012-11-04T09:31:48.120 回答