Compact Frameworkの上でダブルバッファリングでのClearTypeを使用する方法?
-
19-09-2019 - |
質問
私は、バッファに文字列を描画するとき、
、結果の出力は、私が期待する道アンチエイリアスではありません。このコードは、問題を示して...ただ、標準のスマートデバイスプロジェクトのForm1.csでこれを入れます:
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でレンダリングします。
私はそれがフォントスムージングを使用して作る方法で、私のグラフィックスバッファを作成するために持って理解が、私はそれを行うための方法が表示されません。
解決
は、単純な問題となっていることが判明しました。 PixelFormat.Format32bppRgb
を除去することによりそれがうまく働きました。あなたのバッファが同じピクセルフォーマットを持っていることを確認する必要があるように見える...
他のヒント
あなたのGraphicsオブジェクトのSmoothingModeプロパティを設定します:
g.SmoothingMode = SmoothingMode.AntiAlias;
あなたは(これにはいくつかのラッパーが存在する)いるgdiplus.dllを使用する必要がありますが、それは、Windows Mobile 6 Professionalの(ない標準)でのみ使用できます。
所属していません StackOverflow