2013-04-03 5 views
6

Gibt es eine Möglichkeit, eine bessere Textwiedergabequalität in Fensterformularen zu erhalten.Bessere Text-Rendering-Qualität in C# winforms

Ich habe versucht, mit dem "TextRenderingHint" zu spielen, aber war nicht von Nutzen.

Die Schriftart ist Helvetica Neue LT Pro und das gewünschte Ergebnis in Photoshop wird auf der linken Seite des angehängten Bildes angezeigt. Ich stellte es in .NET unter Verwendung der .otf-Datei als eine Ressource vor.

enter image description here

+0

Auf welche Kontrolle setzen Sie das Bild? – MoonKnight

+0

Dies ist ein Button-Steuerelement, und ich möchte kein Bild auf dem Steuerelement, ich möchte normalen Text rendern. Bilder sind immer möglich, aber kaum gepflegt – mustafabar

+0

Ist Ihre Schriftart "Helvetica Neue LT Pro" eine Photoshop-spezifische Schriftart oder eine eingebaute Windows-Schriftart? Gibt es diese Schriftart auf Ihrer Endmaschine, auf der Sie das Programm installiert haben? Sie müssen sicherstellen, dass Ihre Schaltfläche nicht auf eine andere Schriftart zurückfällt, da Ihre Helvetica-Schriftart möglicherweise nicht vorhanden ist – Siraf

Antwort

4

Winforms unterstützt keine Open Type-Schriftarten. Der Windows-Zeichensatz-Mapper hat also eine Ersatz-TrueType-Schriftart gefunden. Es ähnelt Ihrer ursprünglichen Schriftart, macht es aber natürlich nicht gleich. Wenn ClearType nicht aktiviert ist, wird auch das Ergebnis nicht verbessert.

Open Type Schriftart Unterstützung in Windows im Allgemeinen ist nicht gerade stellar. Sie können sich in der Regel nur auf Adobe-Programme verlassen, um es gut zu unterstützen. Es gibt kein gutes Fallback für Programme, die Text mit GDI oder GDI + rendern. Ich kenne nur WPF als ein GUI-Builder-Tool, das es unterstützt. Der Umgang mit den kostenlosen Adobe-Kompatibilitätsproblemen unter Windows hat eine lange, lange Geschichte. Und ähnelt der Freude, die ich mit Flash oder Reader erleben muss.

1

Mein Rat wäre, zuerst Ihr Bild die genaue Größe, die Sie auf die Schaltfläche benötigen machen, um die erforderliche Marge enthält. Dann TextImageRelation = ImageAboveText, ImageAlign = MiddleCenter, AutoSize = True und AutoSizeMode = GrowAndShrink.

Dies ist alles, was Sie tun können, abgesehen davon, dass Sie auf WPF wechseln und mit Ihren erstaunlichen WPF-Tasten glücklich und zufrieden leben.

Ich hoffe, das hilft.