Frage

Kantenglättung kann nicht ausgeschaltet werden in WPF.Aber ich möchte das verschwommene Aussehen von WPF-Schriftarten entfernen, wenn sie klein sind.

Eine Möglichkeit wäre die Verwendung einer .net 2.0-Komponente.Dies sieht so aus, als ob dadurch die Transparenzfähigkeit und die Blend-Unterstützung verloren gehen würden.Habe es aber nie probiert.

Hat jemand hierfür eine Lösung?Irgendwelche Nachteile davon?

Danke

War es hilfreich?

Lösung

Haben Sie versucht, a WindowsFormsHost Steuerelement auf einem WPF-Fenster/Steuerelement?Dadurch kann WPF ein WinForms-Steuerelement rendern.

UPDATE November 2012:Diese Frage und Antwort ist 4 Jahre alt. Seitdem wurde die Textwiedergabe in WPF verbessert.Bitte fügen Sie keine WinForms-Steuerelemente in WPF-Apps ein.Das war eine hackige Art, die Schriftwiedergabe zu reparieren.Es wird nicht mehr benötigt.

Andere Tipps

Anti-Alias ​​kann ab WPF 4.0 mit der folgenden Option deaktiviert werden:

TextOptions.TextFormattingMode="Display"

SnapsToDevicePixels hat absolut keinen Einfluss auf die Textwiedergabe.

Microsoft hat hier einen Blog zum Thema Textwiedergabe in WPF WPF-Textblog

In .NET 4.0 haben sich die Dinge definitiv verbessert.

Versetzen Sie die von Ihnen gezeichneten Objekte, die nicht geglättet werden sollen, um 0,5 Pixel.Dadurch wird die Zeichen-Engine zum Zeichnen veranlasst An die tatsächlichen Pixel, anstatt zu zeichnen an der Kante der Pixel (was die Standardeinstellung ist).Beim Zeichnen am Rand eines Pixels tritt Antialiasing normalerweise bei den umliegenden Pixeln auf.

Dies ähnelt dem Quarts-Zeichnen auf dem Mac.

Bearbeiten:Entschuldigung, ich habe die Frage nicht gelesen.Dies funktioniert nicht für Schriftarten, sondern nur für Formen.Ich werde den Kommentar jedoch hier als Referenz belassen.

Versuchen Sie es mit dem UIElement.SnapsToDevicePixels Eigenschaft für die UI-Elemente Ihres Fensters.Die Leute neigen dazu zu berichten, dass es am besten funktioniert Grafiken und Linien, aber ich habe damit auch eine Verbesserung bei der Textwiedergabe festgestellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top