2012-01-17 10 views
0

Windowsフォームに基づいてカスタムスキンを使用するアプリケーションを作成します。ほとんどのスキンは9つの部分に分割されたビットマップなので、Graphics.DrawImage()はスキンを適用した素敵なボックス/パネルを呼び出します。この問題は、アプリケーションが他のスキンアプリケーションと同じように見えるようになると開始されます。すべてが視覚的に行われると、その現実は - パフォーマンスです。私はまた、カスタム背景画像を持つMDIコンテナパネルを持つウィンドウフォームをスキンしました。このようなフォームをドラッグすると、画面が点滅して乱雑になります。一般にFPSは低くなります。GDI +パフォーマンス(System.Windows.Forms、System.Drawing)&Skinning

スキニングされたWindowsフォームアプリケーションを作成するために、高速GUIを使用するにはどうすればよいですか? (私はWPFを使用しないことを計画しています)事前にお返事いただきありがとうございます。

+0

ため

を参照してください – Bas

+1

I強くアクセント:私はWPFを使用しません。どうして? Beacuse私は、非常に高速なGUIを持つすべてのアプリケーション(たとえばFL Studio)がWPFを使用するわけではないことを知っています。だから別の方法がなければなりません... – komorra

答えて

1

Graphics.DrawImage()は単純に画像を描画する以外にも、パフォーマンスを大幅に向上させるためにP/Invoke BitBltを使用できます。あなたは、パフォーマンスをしたい場合:) WPFを使用して、インスタンスhttp://www.codeproject.com/KB/GDI-plus/flicker_free.aspx

+0

ありがとう:)それはより速く動作しますが、それはもう少しトリッキーにプログラムする必要があります。しかし、これは最適化のための強固な基盤です。さらに私は、さらに高速化するために、すべてのコントロールのSetStyleメソッドを使用しました。今それは非常に非常に速く働く:) – komorra

+0

あなたが物事を進んでいることを聞くニース:) –