ホーム > WPF
WPF
特徴と利点
- ハードウェアアクセラレータの活用
- CPUの負荷低減
- ベクターベースのレンダリングエンジン
- ドキュメントの統合
- コントロールやグラフィックをXAMLによって統合可能
- UIカスタマイズの柔軟性
- デザイナーとロジック開発者の協業
UIとロジック分離
- XAML(Extensible Application Markup Language)の宣言言語を使用してUIを記述
- ロジックをC#言語を用いて記述可能
XAMLとBAML
XAMLとコードビハインドは1つのクラスとして合成されてコンパイル
BAML(Binary Application Markup Language)はXAMLコードをバイナリ化したもの。
BAMLはファイルサイズの縮小と読込負荷の低減を行う。
中間生成物の***.g.csはXAMLコードのUI要素をコードビハインドやBAMLコードから読込コードを含んでいる。
XAMLとツリー構造
- 平行移動や回転、変形は親要素から相対位置に基づいて、子要素にも影響
- 添付プロパティの仕組みを用いて、親要素が使う要素を保持できる。
- FontSizeなど、一部のプロパティは親要素から包合継承する。
データバインディングと更新通知
バインディング
ViewとModel(ValidationやEntityを含む)を分離する仕組み。
- 属性にバインディングを記述する
要素 = {Binding} - バインディングの値はDataContextに紐づけられる。
- ビューの内部には一切ロジックを持つ必要がない。
更新通知
モデル側でバインドされたビューに対してデータの更新を通知可能
INotifyPropertyChanged |
UI要素
コントロール
ボタンやコンボボックスなどの入力コントロール類
- Button
- TextBox
コンテナ
子要素の配置を決定する要素類
- StackPanel
- Grid
- Canvas
- DockPanel
- WrapPanel
シェイプ
ベクターやグラフィックを描画する要素類
- Retangle
- Ellipse
- Path
メディア
画像や動画要素など
- Image
- MediaElement
ドキュメント
文章整形
- RichTextBox
このページのURL: