「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
従来は、
など、異なる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: :.NET開発, :UIサブシステム, :WPF/Silverlight, XAML