次の方法で共有


.NET Compact Framework のグラフィックスのプログラミング

更新 : 2007 年 11 月

.NET Compact Framework を使用すると、堅牢で、視覚効果の高いアプリケーションを作成できます。また、プラットフォーム呼び出しを使用することにより、ネイティブ コードで特殊効果を得ることもできます。.NET Compact Framework version 2.0 およびそれ以降のバージョンでは、Direct3D アプリケーションをプログラミングできます。.NET Compact Framework における DirectX および Direct3D の詳細については、「Windows Mobile DirectX および Direct3D」を参照してください。

.NET Compact Framework でグラフィック オブジェクトをプログラミングするときは、次の点を考慮する必要があります。

  • .NET Compact Framework は、GDI+ をサポートしていません。複雑な描画、塗りつぶし、および変形操作を実行する Graphics クラス メソッドの一部はサポートされていません。パス、円弧、2-D、および 3-D はサポートされていません。

    ただし、.NET Compact Framework では、中心的な描画プリミティブおよび対応する塗りつぶしメソッド (楕円、直線、イメージ、多角形、四角形、線、領域) はサポートされています。

  • 高解像度アプリケーション用のコードを作成できます。高解像度の詳細については、「方法 : 画面の向きと解像度を変更する」を参照してください。

  • カラーキー透過だけがサポートされています。アルファ ブレンド、つまりソースと背景色データとのピクセル単位でのブレンドはサポートされていません。このため、SetColorKey メソッドの colorLow パラメータと colorHigh パラメータは、同じ色であることが必要です。

  • .NET Compact Framework と .NET Framework では、既知の色との比較方法が異なります。.NET Compact Framework では、Aquamarine などの既知の色を、Aquamarine と同じ RGB 値を持つ色と比較すると、その結果は同じになります。.NET Framework では、これらの色を別のものとして評価します。既知の色には、RGB 値以外に ID 情報も含まれるためです。

  • .NET Compact Framework では、既存の Font オブジェクトを使用する Font クラスのコンストラクタはサポートされません。

  • CreateGraphics メソッドは、Form オブジェクトまたは Control オブジェクトだけで使用できます。

  • イメージの読み込みに失敗する場合は、imgdecmp.dll がデバイスの Windows ディレクトリに存在することを確認してください。

  • IconClone メソッドおよび FromHandle メソッドは、Windows Mobile 5.0 が実行されているデバイスで有効です。.NET Compact Framework では、高解像度アイコンはサポートされますが、ハイ カラー アイコンはサポートされません。

  • .NET Compact Framework では、グラデーション ブラシはサポートされていません。ただし、ネイティブ関数との相互運用でグラデーションを表現できます。例については、「方法 : グラデーションの塗りつぶしを表示する」を参照してください。

描画速度の向上

Graphics オブジェクトの使用時に描画パフォーマンスを向上させる方法について、次のコード例に示します。

  • Graphics オブジェクトを 1 つだけ作成するか、OnPaint メソッドで PaintEventArgs からのオブジェクトを使用します。

  • オフスクリーン ビットマップに描画してから、ビットマップを描画して一度にすべてを表示します。コード例については、「方法 : イメージをオフスクリーンに描画する」を参照してください。

  • イメージの中で変更された部分だけを再描画します。

  • ソース サイズと同じ目的サイズで描画します。可能な限り、伸縮しないようにしてください。

  • 再描画する必要がある項目を追跡することにより、描画数を最小限に抑えます。たとえば、イメージを横切ってカーソルをドラッグするときに、イメージ全体を再描画する必要はありません。イメージのうち、直前にカーソルが置かれて上書きされた部分だけを再描画します。

参照

その他の技術情報

.NET Compact Framework での Mobile Direct3D プログラミング

.NET Compact Framework の相互運用性

.NET Compact Framework でのグラフィックスと描画