Open棟梁Project - マイクロソフト系技術情報 Wiki
従来は、
など、異なるAPI群を組み合わせていたが、
WPFのUIフレームワークでは、これらを統一して扱えるようになっている。
CPU描画の他の技術より高速で、同時にCPUへの負担を最小限に抑えることができる。
透過性をサポートしている。
UIコントロールと、CLRオブジェクトの間をマッピングする。
UIコントロールの「外観」や、イベント ハンドラ・イベント トリガなども含めた、UIコントロールの標準化・カスタマイズを行う。
パネルと呼ばれるレイアウト用コントロールを使用して、Windowsフォームのような座標レイアウト、HTMLのようなフロー レイアウト(ブロック化、格子分割)にも対応する。
イベント トリガ、トリガ アクション、ストーリ ボードを定義することで、UIコントロールなどの表示項目にタイムライン ベースのアニメーションの効果を付加できる。
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
Title="HostingWfInWpf" Height="150" Width="300" Loaded="Window_Loaded">
<Canvas>
<WindowsFormsHost Name="windowsFormsHost1" Height="100" Width="275">
<wf:DataGrid x:Name="dataGrid1"/>
</WindowsFormsHost>
</Canvas>
</Window>主に3Dグラフィックの高度な機能に関する制限であるので、リッチでインタラクティブな業務アプリケーションの開発に、大きな支障は無いと言える。
| 項番 | 区分 | 説明 |
| 1 | パフォーマンス | Direct3Dと比べるとオーバーヘッドがあり、GPU負荷が高くなる。また、WPFはDirect3D 9対応であり、Direct3D 10対応のグラフィックボードであってもパフォーマンスは向上しない。 |
| 2 | シェーダ | WPFは内部的にシェーダを使用しているが、開発者がWPFからシェーダを使用することはできない。 |
| 3 | スキニング | WPFではスキニングができないので、滑らかな関節を持つアニメーションはできない(剛体アニメーションのみサポート)。 |
| 4 | 環境マッピング | WPFでは環境マッピングが使用できないので、物体に周囲の景色が反射しているような効果は表現できない。 |
| 5 | 影 | WPFではステンシル バッファ(3Dグラフィックにおいて、物体の重ね合わせなど、描画しなくても良い領域を効率よく判定するためのバッファ領域)や、深度バッファを使用できないためリアルな影を生成できない。 |
| 6 | テクスチャ・フィルタリング | ポリゴンのテクスチャを構成するピクセルにテクセル(3Dグラフィックにおいて、テクスチャを構成する一つ一つのピクセル)が一対一に対応することはほとんどなく、 ポリゴンにテクスチャをマッピングする際には、テクスチャを拡大/縮小(変形)するフィルタが必要となるが、WPFから、このフィルタを指定することはできない。 |
3Dグラフィックにおいて、人間の関節のような滑らかな屈曲を表現するための手法。
初期は不足があり、サードパーティ製品に依存していたが、最近は拡充された。
初期はサードパーティ製品に不足があったが、最近は拡充された。
Windowsフォームの開発と同様に、VSデザイナからコントロールをD&Dして座標レイアウトでコントロール位置を指定する方式の開発を望む場合は、パネル要素に、Canvasコントロール(後述)を使用する。
Tags: :WPF/Silverlight, XAML