Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#1

GDI+ DrawString: Kantenglättung streikt bei großer Schrift

  Alt 18. Aug 2006, 19:13
Ich habe einen einfachen Schriftartenbetrachter programmiert, bzw. bin noch dabei. Dabei bin ich auf ein unangenehmes Problem gestoßen, und zwar wird ab einer bestimmten Schriftgröße die Schrift nicht mehr geglättet (siehe Anhang). Im Betriebssystem ist ClearType aktiviert, und auch ein beliebiges Herumspielen an den Einstellungen des Graphics-Objekts ändert nichts. Schriftgröße 48 wird noch geglättet, darüber nicht mehr. In anderen Anwendungen funktioniert die Glättung. Woran kann das liegen?

Der Code zum Zeichnen sieht ungefähr so aus (gekürzt):
Code:
using (Font font = CreateDefaultFont(family, 16)) {
    e.Graphics.DrawString(smallTestText, font, SystemBrushes.WindowText, 2, 16);
}

using (Font font = CreateDefaultFont(family, 64)) {
    e.Graphics.DrawString(bigTestText, font, SystemBrushes.WindowText, 2, 32);
}
CreateDefaultFont erzeugt die Schriftart einfach mit dem ersten gefundenen Stil (gibt ja auch Schriftarten, für die es keinen Regular-Stil gibt), also im Prinzip nur
Code:
return new Font(family, height, fontStyle);
Edit:
Musste gerade feststellen, dass das Problem nicht bei jeder Schriftart auftritt - aber bei allen Schriftarten, bei denen es bei mir auftritt, sind keine Probleme in anderen Anwendungen festzustellen.
Miniaturansicht angehängter Grafiken
fontsample_721.png  
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat