9

これは簡単な解決策のように思えますが、これを理解しようとすると時間がかかりすぎます。おそらく、アプリケーションの設計が間違っている可能性があります (そうである可能性があります)。より良い解決策があれば、助けてください。

Ribbonツールバーの代わりに Outlook によく似たエンタープライズ レベルの WPF アプリケーションを設計しています。ユーザーがRibbonButton. 彼のリボンはすべてのモジュールで共有されていることに注意してください。

リボンとフレームが付いたシェルがあります。ユーザーがリボン ボタンをクリックすると、適切なモジュール (ユーザー コントロール) がフレームに読み込まれます。すべてが良いです。ただし、別のモジュールに移動して (別の RibbonButton をクリックして)、元のモジュールをクリックするとRibbonButton、同じモジュールの 2 つのインスタンスが開いています... しかし、フレームには 1 つしか表示されません... もう 1 つのモジュールフレームのスタックにあります。

だから私の質問は、別のモジュールに移動したときにユーザーコントロールを閉じるようにフレームに指示する方法ですか? を設定してみましたJournalEntry.KeepAlive="False"が、それでもうまくいきませんでした。何かご意見は?投稿するコードはあまりありませんが、お役に立てれば投稿できます。

4

1 に答える 1

11

前のエントリに「戻る」つもりがない場合は、ナビゲートするたびにNavigationService.RemoveBackEntry()を使用して履歴を消去できます。これを行う最も簡単な方法は、Frame のNavigated イベントを処理することです。

frame.Navigated += frame_Navigated;

void frame_Navigated(object sender, NavigationEventArgs e)
{
    frame.NavigationService.RemoveBackEntry();
}
于 2010-02-17T23:15:09.517 に答える