2012-11-28 42 views
1

我在WPF窗口中有一個框架。如果我點擊頁面上的後退按鈕,我可以輕鬆地進行一些檢查並調用Frame.GoBack()。但是,如果我單擊退格鍵或鍵盤或遙控器上的特殊後退鍵,則幀會在該窗口起泡到主窗口之前攔截此調用,從而導致我的代碼無法運行。在WPF框架中手動導航CommandCommands.BrowseBack

有沒有辦法阻止wpf框架收聽NavigationCommands.BrowseBack?

+0

沒有嘗試處理PreviewKeyDown並設置arg.Cancel = true在後退按鈕的情況下? –

+0

我可以做一個arg.handled = true,但這將停止任何人處理任何關鍵事件。我希望幀的父級處理事件而不是幀。 – Oli

+0

你可以只處理它的框架,並只過濾返回按​​鈕? –

回答

0

我設法通過加倍CommandBindings來解決問題。我現在正在通過窗口和框架處理事件。添加到的CommandBinding框架似乎已經覆蓋任何框架是做本地

<Frame x:Name="MainFrame" NavigationUIVisibility="Hidden" Focusable="False"> 
    <Frame.CommandBindings> 
     <CommandBinding Command="NavigationCommands.BrowseBack" Executed="CommandBinding_Executed_BrowseBack"/> 
    </Frame.CommandBindings> 
</Frame>