0
我有一個PhoneApplicationPage
與一些網格,圖像和幾個按鈕。如果我在頁面外部(圖片,網格或其他任何地方)點擊我的按鈕,我想打開一個新頁面。檢測頁面中的點擊?
如何檢測頁面上任意位置的點擊/點擊?
我有一個PhoneApplicationPage
與一些網格,圖像和幾個按鈕。如果我在頁面外部(圖片,網格或其他任何地方)點擊我的按鈕,我想打開一個新頁面。檢測頁面中的點擊?
如何檢測頁面上任意位置的點擊/點擊?
我看到至少有兩種方法可以做到這一點:
MouseLeftButtonUp
事件對你PhoneApplicationPage
。應該通過圖像和標籤,但沒有按鈕觸發聽你的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
}
我想檢查e.OriginalSource的'類型'會是一樣的嗎? – l33t
不幸的是沒有。像Button這樣的控件由許多子控件組成,原始的源代碼就是子控件。因此,不要在'e.OriginalSource'中找到'Button',而是會找到例如'Border'。 –