Hatena::ブログ(Diary)

周回遅れのブルース

2017-02-25

Q126. XamDockManager のレイアウトを保存・読み込み・初期化したい

| 13:48 | Q126. XamDockManager のレイアウトを保存・読み込み・初期化したいを含むブックマーク

A.XamDockManager はペインを一元管理できるコントロールでして、ペインのドッキングやフローティング、タブや左右・上下の配置などを自在に配置可能なコンテナコントロールです。Visual Studio のIDE をイメージすれば判りやすいと思います。

f:id:hilapon:20170225133829p:image:w300


ユーザーがペインを自由に配置できるとあれば、当然レイアウトを保存・読み込みしたいというニーズも出てきますね。XamDockManager ではレイアウトの保存・読み込みに LoadLayoutSaveLauout・というメソッドが用意されてます。


サンプルコード

以下、簡単なサンプルを用意しました。XamDockManager のレイアウトの保存・読み込み・初期化するサンプルです。以下の画面は上の画面と同一のものですが、クライアントがレイアウトを変更したものになります。

f:id:hilapon:20170225133828p:image:w300


まずビューです。


お次はコードビハインドです。LoadLayout・SaveLayout の両メソッドで簡単に設定できるのが理解できると思います。レイアウトの状態をファイルに保存するには、オーバーロードされたメソッド(ストリームをパラメータで扱うバージョン)を使えば、簡単に保存できます。


初期化に関しては XamDockManager 側でメソッドが用意されてないため、ContentRendered イベントで要素が初期化されたタイミングを見て、SaveLayout メソッドで初期状態を保存。初期化ボタンクリック時に LoadLayout でXML文字列を読み込んでます。


WPF FAQ の目次に戻る


 

トラックバック - http://d.hatena.ne.jp/hilapon/20170225/1487998091
リンク元