一年多以前為我們學校寫了一個8.0的課表,現在想遷移到Windows10,同時支持PC和手機。
本來一切正常,但是在處理回退按鍵的時候出了點問題。
微軟在Channel9 10166的視頻中給出了如何處理手機回退按鍵的處理方法。
就是在項目中添加對手機的擴展
然後使用這行代碼在運行時做出判斷
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) { Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; }
最開始的時候我也是用這種方法,但是最後發現這種發法有局限性,就是並不支持PC的平板模式下的回退按鈕。
那麼如何才能同時都支持呢?
經過一番查找發現,要想同時支持其實很簡單只需要這樣寫就可以了!!!
var view = SystemNavigationManager.GetForCurrentView(); view.BackRequested += View_BackRequested;
而且這樣寫還有一個好處是無需添加對手機擴展的引用!
這個事件是一個路由事件,如果不希望傳遞給上層需要在本層標記為
e.Handled = true;
好滴!回退按鍵的處理完美解決!