9

内部にフレームがある WPF アプリケーションを作成しました。このフレームに他のページを次のように添付できます

frame1.Source = new Uri("Page1.xaml", UriKind.RelativeOrAbsolute);

問題は、このページ (Page1.xaml) を読み込んだ後、同じフレーム (Page2.xaml) に別のページを読み込むことです。Pag​​e1.xaml は自動的に破棄されますか、それともまだバックグラウンドで実行されていますか? フレーム ソース ページの dispose メソッドが見つかりませんでした。誰でもこれを説明できますか。

4

1 に答える 1

13

Frameコンテンツをナビゲートする機能を提供するように設計されています。ナビゲーション用にコンテンツをパッケージ化するための好ましい方法は、Pageあなたがしているとおりです。具体的には、フレームはナビゲートメソッドを使用してナビゲートでき、ナビゲーション履歴の存続期間を維持します。ここで、「履歴」はここでのキーワードです。

ナビゲーションの履歴内で、フレームは、過度のメモリ消費を回避するために、ナビゲートされた各ページのインスタンスを維持しません。したがって、ナビゲーションコントロールを使用するときは状態が記憶されず、ページに移動するたびに新しいインスタンスが作成されます。

つまり、フレーム内のページから移動すると、オブジェクトが破棄されます。

MSDNは、フレームの使用についてよく読んでいます。

于 2010-04-01T17:58:23.007 に答える