TextRenderer.DrawText im Bitmap-vs OnPaintBackground

Wenn ich TextRenderer.DrawText() mit dem Graphics-Objekt zur Verfügung gestellt, in das OnPaintBackground mein text sieht perfekt aus. Wenn ich meine eigene Bitmap und verwenden Sie die Graphics-Objekt erhalten Sie von meinem Bitmap-mein text sieht schrecklich aus. Es sieht aus wie es ist mit anti-aliasing text mit schwarzen, nicht die bitmap-hintergrund-Farbe. Ich kann dieses problem vermeiden, wenn ich Grafiken verwenden.DrawString(), aber diese Methode hat schreckliche kerning-Probleme. Was soll ich tun? Wie bekomme ich TextRenderer.DrawText ( ... ), um anti-alias richtig mit der Bitmap der Inhalt?

Sieht schrecklich aus:

Bitmap bmp = new Bitmap(100, 100, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.Red);
TextFormatFlags tf = TextFormatFlags.Left;
TextRenderer.DrawText(g, @"C:\Development\Testing\blag", font, clip, Color.White, Color.Transparent, tf);
}

Sieht gut aus, aber ich will machen das auf eine bitmap, NICHT auf der Oberfläche des Steuerelements:

protected override void OnPaintBackground(PaintEventArgs e)
{
e.Graphics.Clear(Color.Red);
TextFormatFlags tf = TextFormatFlags.Left;
TextRenderer.DrawText(e.Graphics, @"C:\Development\Testing\blag", font, clip, Color.White, Color.Transparent, tf);
}

Was ist der Unterschied?

Schreibe einen Kommentar