「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>WPF]] * 目次 [#a6647547] #contents *概要 [#q1d98836] -MSDN > Windows Presentation Foundation --詳細設定 > 移行と相互運用性 > WPF と Windows フォームの相互運用性 > Windowsフォーム コントロールおよび同等のWPFコントロール~ http://msdn.microsoft.com/ja-jp/library/ms750559.aspx --コントロール > コントロールのカスタマイズ > コントロールの作成の概要~ http://msdn.microsoft.com/ja-jp/library/ms745025.aspx *標準コントロール [#te4c8df4] WPFは、次のような標準コントロールを備えている。 **コントロール(Control) [#h4d56350] ボタンやリストボックスなどのコントロール類 一例 -Label -TextBox -Button -ComboBox -ListBox -DataGrid **パネル(Panel) [#c22bceea] 子要素の配置を決める。 一例 -Canvas -DockPanel -StackPanel -WrapPanel -UniformGrid -Grid **シェイプ(Shape) [#fb5fcbd0] ベクタグラフィックスを描画 一例 -Rectangle -Ellipse -Path **メディア(FrameworkElement) [#e0214f36] 静止画や動画などの表示 一例 -Image -MediaElement **ドキュメント(TextBoxBase) [#y2c63538] 文書整形 一例 -RichTextBox *ユーザ コントロール [#m9448a6a] ユーザ コントロールは、UI要素の部品化を目的としたもので、~ Windowsフォーム、ASP.NETアプリケーション(Webフォーム)などと同様に、~ ユーザ コントロールの開発・使用が可能である。 WPFでは、 -ユーザ コントロールのCLRプロパティを初期化する場合、XAML要素から指定可能であったり、 -ユーザ コントロール内の各コントロールに「データ バインディング」する場合は、 --ユーザ コントロールのDataContextプロパティに「バインディング ソース」を指定可能であったり、 --また、「ツールチップ」の表示にユーザ コントロールを設定したりするなど、 ユーザ コントロールをより柔軟に利用できる。 **画面遷移での利用 [#kd27bd58] -ユーザ コントロールをプログラムからインスタンス化して、~ (ナビゲーション フレームワークの仕様に依らず)画面遷移やダイアログの代替を実現したりできる。 -ダイアログがサポートされていない「XBAP」で、z-indexを適切に設定するか、最後の要素としてルートのパネル要素に追加することで、~ ダイアログ表示の代替が可能(Silverlight ver3から、ChildWindowコントロールが利用できる)。 -ユーザ コントロールにアニメーションを適用することで、アニメーション効果付の画面遷移を実装することができる。 **部品の汎用化 [#pd716aa3] ユーザ コントロールのプロパティを以下の用途で使用する場合、それぞれ追加の実装が必要になるので注意する。 ***バインディング ソース [#j12b65be] 変更通知を実装した「バインディング ソース」として使用する場合、~ INotifyPropertyChangedインターフェイス、変更通知処理を実装する必要がある。 ***バインディング ターゲット [#e138e3eb] 変更監視・有効値検証を実装した「バインディング ターゲット」として使用する場合、~ DependencyObjectクラスを継承し、「依存関係プロパティ」として実装する必要がある。 ---- Tags: [[:.NET開発]], [[:WPF/Silverlight, XAML]] Tags: [[:.NET開発]], [[:UIサブシステム]], [[:WPF/Silverlight, XAML]]