2012-07-26 83 views
3

因此,我只是對我的項目進行測試,並意識到如果您有鏈接(例如導航服務),則需要雙擊和雙擊。這意味着如果我有一個按鈕轉到應用程序中的另一個頁面,除非我不處理雙擊,該應用程序將崩潰。手柄雙擊全球WP7?

所以,如果我有這樣的:

<toolkit:HubTile Name="XXX" 
     Message="XXXYYY" Source="ZZZ" 
     Title="XYZ" Tap="XYZ_Tap"/> 

如果有誰雙水龍頭這種瓷磚,應用程序會崩潰。因此,我必須添加

DoubleTap="XYZ_DoubleTap" 

屬性。但是,這可能會讓人感到疲勞,似乎沒有必要。那麼是否有辦法在全球範圍內處理所有雙擊?那麼如果我想實際上在某個地方實現它,只需重寫它呢?謝謝:)

編輯:DoubleTap的「全局」事件處理程序很簡單,什麼都不做。這樣我就不必爲每個鏈接或按鈕重寫它。每次處理一個沒有處理的DoubleTap時,都不會拋出異常。

回答

1

您應該創建一個繼承自HubTile的自定義控件,並將DoubleTap事件設置爲在該類中不執行任何操作。

+0

這正是我現在正在做的。我只希望每個DoubleTap都有更多的東西,而不是每個元素的特定屬性。不過謝謝你,因爲你的答案是最接近我想要的。 – Div 2012-07-27 17:39:55

2

最有可能發生崩潰的原因是在第二個「tap」上引發了異常。當「任務不在前臺」時,「導航」的內容不被允許。

我想爲DoubleTap放置一個空的事件處理程序將會起作用,因爲它可以識別雙擊事件並且什麼也不做。另一種可能應該完成的方法是將導航調用包裝在try/catch塊中,以捕獲第二次敲擊拋出的異常。

但是,爲了解決您的具體問題,除了無所作爲之外,您想象的是雙擊的全局處理?

+0

那麼我知道爲什麼應用程序崩潰了,也知道爲什麼會發生異常。這就是我爲什麼要解決這個問題。但是爲每一個按鈕,鏈接或者什麼都不需要,放置一個空的DoubleTap事件處理程序。 – Div 2012-07-27 01:43:09

+0

因此,全球處理程序負責管理雙擊的操作,這沒什麼。這樣我就不必爲每個鏈接重寫DoubleTap事件處理程序。 – Div 2012-07-27 01:44:09

+0

不幸的是,事件處理程序被限制爲特定類的實例成員,所以我認爲你不能這樣做。我仍然認爲更簡單的解決方案就是在try/catch中捕獲異常。請參閱事件要求的鏈接:http://msdn.microsoft.com/en-us/library/cc221357%28v=VS.95%29.aspx – Gambit 2012-07-27 06:50:33