Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
標準コントロール †
WPFは、次のような標準コントロールを備えている。
コントロール(Control) †
ボタンやリストボックスなどのコントロール類
一例
- Label
- TextBox?
- Button
- ComboBox?
- ListBox?
- DataGrid?
パネル(Panel) †
子要素の配置を決める。
一例
- Canvas
- DockPanel?
- StackPanel?
- WrapPanel?
- UniformGrid?
- Grid
シェイプ(Shape) †
ベクタグラフィックスを描画
一例
メディア(FrameworkElement?) †
静止画や動画などの表示
一例
ドキュメント(TextBoxBase?) †
文書整形
一例
ユーザ コントロール †
ユーザ コントロールは、UI要素の部品化を目的としたもので、Windowsフォーム、ASP.NETアプリケーション(Webフォーム)などと同様に、ユーザ コントロールの開発・使用が可能である。
WPFでは、ユーザ コントロールのCLRプロパティを初期化する場合、XAML要素から指定可能であったり、ユーザ コントロール内の各コントロールに「データ バインディング」する場合は、ユーザ コントロールのDataContext?プロパティに「バインディング ソース」を指定可能であったり、また、「ツールチップ」の表示にユーザ コントロールを設定したりするなど、ユーザ コントロールをより柔軟に利用できる。
画面遷移での利用 †
- ユーザ コントロールをプログラムからインスタンス化して、(ナビゲーション フレームワークの仕様に依らず)画面遷移やダイアログの代替を実現したりできる。
- ダイアログがサポートされていない「XBAP」で、z-indexを適切に設定するか、最後の要素としてルートのパネル要素に追加することで、ダイアログ表示の代替が可能(Silverlight ver3から、ChildWindow?コントロールが利用できる)。
- ユーザ コントロールにアニメーションを適用することで、アニメーション効果付の画面遷移を実装することができる。
部品の汎用化 †
ユーザ コントロールのプロパティを以下の用途で使用する場合、それぞれ追加の実装が必要になるので注意する。
- 変更通知を実装した「バインディング ソース」として使用する場合、
INotifyPropertyChanged?インターフェイス、変更通知処理を実装する必要がある。
- 変更監視・有効値検証を実装した「バインディング ターゲット」として使用する場合、
DependencyObject?クラスを継承し、「依存関係プロパティ」として実装する必要がある。