2009-07-27 21 views
2

バッファに文字列を描画すると、出力結果は私が期待したようにアンチエイリアスされません。このコードは、問題を示して...ただ、標準のスマートデバイスプロジェクトのForm1.csでこれを置く:一方Compact Frameworkでダブルバッファリングを使用するClearTypeを使用する方法?

protected override void OnPaint(PaintEventArgs e) 
{ 
    Bitmap buffer = new Bitmap(Width, Height, PixelFormat.Format32bppRgb); 
    using(Graphics g = Graphics.FromImage(buffer)) 
    { 
    g.Clear(Color.White); 
    g.DrawString("Hello, World", Font, new SolidBrush(Color.Black), 5, 5); 
    } 
    e.Graphics.DrawImage(buffer, 0, 0); 
} 

を、私はちょうどPaintEventArgsで渡されたGraphicsオブジェクトに文字列を描画する場合それは私が期待しているのと同じようにClearTypeでレンダリングされます。

私はグラフィックスバッファをフォントスムージングを使用する方法で作成しなければなりませんが、その方法はありません。あなたのGraphicsオブジェクトのSmoothingModeプロパティを設定し

答えて

3

これは簡単な問題でした。 PixelFormat.Format32bppRgbを削除するとうまくいきました。あなたのバッファが同じピクセルフォーマットを持っていることを確認する必要があるように見えます。

0

g.SmoothingMode = SmoothingMode.AntiAlias; 
+1

これはCF上で利用可能です。 – leppie

+0

あなたはそうです、それはありません。 – MusiGenesis

0

あなたは(このためのいくつかのラッパーが存在する)いるgdiplus.dllを使用する必要がありますが、それはのWindows Mobile 6 Professionalでのみ利用可能です(ではありません標準)。

関連する問題