閉じないで、隠れるだけ

開発する画面で、やたらコントロールが多い時、画面の起動そのものに、結構なコスト(メモリと時間)がかかることがある。
そういう場合、画面を閉じるのではなく、非表示にするという方法がある。
ウィンドウを閉じないで非表示にするサンプル
Hide a window instead of closing it in WPF

・モードレス起動のみ可能(モーダルでやると多分固まる)。
・HideとShowで非表示と表示を切り替える。
・通常のCloseは必ずキャンセルする。

MVVMパターンの場合、WindowというViewに対して、ViewModelから「終了ではなく非表示にして」というメッセージと、「非表示から表示にして」というメッセージを送る事ができる必要がある。かな?
まあ、Command化して、OneWayToSourceでバインドするという手もあるけど。
この方法、Windows.Formsで開発したときに実際に使った事があるので、起動が早くなるのは知っているけど、多くの画面を隠しすぎても、メモリを多く占有するので、加減が難しいんだよな。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m