ナビゲーションウィンドウの戻るボタンが押されたときを判断し、そのイベントを特別なものにトラップする方法。ページの状態を管理しようと考えています。
質問する
3016 次
2 に答える
4
NavigationWindow.Navigating
または のいずれかにハンドラーを追加しますNavigationService.Navigating
。ハンドラーで:
void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
{
if (e.NavigationMode == NavigationMode.Back) {
e.Cancel = true;
// TODO: whatever state management you're going to do
}
}
Ps ナビゲーション サービスを登録する必要があります。私のコードでは、ナビゲーション サービスがまだ null だったため、ページ コンストラクターでは機能しませんでした。そのため、Loaded="page_Loaded" を XAML ページ タグに追加し、そこに割り当てました。
bool _navigationServiceAssigned = false;
private void page_Loaded(object sender, RoutedEventArgs e)
{
if (_navigationServiceAssigned == false)
{
NavigationService.Navigating += NavigationService_Navigating;
_navigationServiceAssigned = true;
}
}
には、ページの状態を管理するために必要なナビゲーション リクエストに関するすべてのNavigatingCancelEventArgs
情報が含まれています。
于 2012-07-25T16:41:03.083 に答える
1
はNavigationService
、ナビゲーションプロセスを制御する場合に、サブスクライブできるいくつかのイベントを提供します。
- フレームがナビゲートしようとしているときのナビゲート。停止するには、キャンセルをtrueに設定します。
- ナビゲーションが終了したが、レンダリングされる前にナビゲートされた
- NavigationFailed、問題が発生した場合
- NavigationProgress、リモートナビゲーション呼び出しのチャンクがダウンロードされているとき。
- NavigationStopped、StopLoadingメソッドが呼び出されたとき、またはダウンロード中に新しいナビゲート要求が行われたとき
- ページがレンダリングされたときにLoadCompleted
于 2012-07-25T16:36:26.337 に答える