というわけで概念面を突き詰めると先に進めない人なので、とりあえずWPFアプリケーションをさわって作って試してみるといういつものアプローチで。環境はVisual Studio 2008 SP1とExpression Blend 2。ツールの基本的な扱いについてはここ数日で色々やっているので、まぁ何も判らないレベルは脱してきている状態。とりあえず、ファイルを指定してイメージデータを表示するという程度の物を作ってみようと思い、着手。フォーム上段にファイルを指定するインターフェイス、中段が画像表示。ここはフォームのリサイズで伸縮。下段には終了ボタンとかステータス表示欄を、という構成。ところが、通常のWindowsアプリで言う「Dock」プロパティが見あたらない。
調べてみると、DockPanelというパネルを下地に敷くことで、その子要素にDockプロパティが追加されるようだ。実際、DockPanelの中にImageコントロールを貼り付けると、Imageコントロールに「DockPanel.Dock」というプロパティが登場した。これを「添付プロパティ」と呼ぶらしい。継承して元のクラスを拡張するのではなく、ちょっと追加、という感じでプロパティを追加してしまうようだ。
これ、親(下地)となるDockPanelの「LastChildFill」プロパティがTrueの場合、
- 最後に貼り付けられたコントロールは「Fill」扱い。
- それ以外はDockPanel.Dockプロパティの指定に従う。
というわけで、DockPanelコンテナに1つだけコントロールが貼り付けられている状態では正直意味がないようだ(Fill扱いになる)。ただ、Imageコントロールを1個だけ貼り付けても、一般的なWindowsアプリのデザイン画面のように「コンテナにべったり広がって張り付く」とならないのはなんでだろうか?他にも何か設定があるのだろうか。
- 出版社/メーカー: マイクロソフト
- 発売日: 2008/07/18
- メディア: DVD-ROM
- この商品を含むブログ (1件) を見る
Visual Studio 2008 Professional Edition
- 出版社/メーカー: マイクロソフト
- 発売日: 2008/02/08
- メディア: DVD-ROM
- クリック: 18回
- この商品を含むブログ (10件) を見る
これと「依存関係プロパティ」ってのの関係は?もちょっと資料とか呼んでみないと判らない。それから横の人から「.NET 2003でもToolTipとかで似たことはやってる」とのこと。確かに。