ホーム > WPF

WPF

特徴と利点

  • ハードウェアアクセラレータの活用
    • CPUの負荷低減
    • ベクターベースのレンダリングエンジン
  • ドキュメントの統合
    • コントロールやグラフィックをXAMLによって統合可能
  • UIカスタマイズの柔軟性
  • デザイナーとロジック開発者の協業

UIとロジック分離

ap-introwpf_01_01.gif

  • XAML(Extensible Application Markup Language)の宣言言語を使用してUIを記述
  • ロジックをC#言語を用いて記述可能

XAMLとBAML

ap-introwpf_01_02.gif
XAMLとコードビハインドは1つのクラスとして合成されてコンパイル
BAML(Binary Application Markup Language)はXAMLコードをバイナリ化したもの。
BAMLはファイルサイズの縮小と読込負荷の低減を行う。
中間生成物の***.g.csはXAMLコードのUI要素をコードビハインドやBAMLコードから読込コードを含んでいる。

XAMLとツリー構造

XAMLのUI要素はツリー構造によって構成される
ap-introwpf_01_03.gif

  • 平行移動や回転、変形は親要素から相対位置に基づいて、子要素にも影響
  • 添付プロパティの仕組みを用いて、親要素が使う要素を保持できる。
  • FontSizeなど、一部のプロパティは親要素から包合継承する。

データバインディングと更新通知

バインディング

ViewとModel(ValidationやEntityを含む)を分離する仕組み。
ap-introwpf_01_06.gif

  • 属性にバインディングを記述する
    要素 = {Binding}
  • バインディングの値はDataContextに紐づけられる。
  • ビューの内部には一切ロジックを持つ必要がない。

更新通知

モデル側でバインドされたビューに対してデータの更新を通知可能

INotifyPropertyChanged

UI要素

コントロール

ボタンやコンボボックスなどの入力コントロール類

  • Button
  • TextBox

コンテナ

子要素の配置を決定する要素類

  • StackPanel
  • Grid
  • Canvas
  • DockPanel
  • WrapPanel

シェイプ

ベクターやグラフィックを描画する要素類

  • Retangle
  • Ellipse
  • Path

メディア

画像や動画要素など

  • Image
  • MediaElement

ドキュメント

文章整形

  • RichTextBox
このページを共有:
  • このページをはてなブックマークに追加 このページを含むはてなブックマーク
  • このページをlivedoor クリップに追加 このページを含むlivedoor クリップ
  • このページをYahoo!ブックマークに追加
  • このページを@niftyクリップに追加
  • このページをdel.icio.usに追加
  • このページをGoogleブックマークに追加

このページのURL:

TOP