我有PhoneApplicationPage
一些网格、图像和一些按钮。如果我在按钮外点击页面中的任何位置(在图像、网格或其他任何地方),我想打开一个新页面。
如何检测页面上任意位置的点击/单击?
我有PhoneApplicationPage
一些网格、图像和一些按钮。如果我在按钮外点击页面中的任何位置(在图像、网格或其他任何地方),我想打开一个新页面。
如何检测页面上任意位置的点击/单击?
我看到至少有两种方法可以做到这一点:
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
}