Seltsame Textskalierung, wenn die Systemschrift 125% beträgt

8

Hier ist die vollständige Anwendung xaml:

%Vor%

Wenn die Systemschriftart auf 125% eingestellt ist, befindet sich der Text nicht in der Mitte des Rahmens. Es gibt 7 Pixel zwischen oberer Grenze und Text und nur 4 Pixel zwischen unterer Grenze und Text. Wie kann ich es beheben?

UPD: hinzugefügt

%Vor%

aber der Unterschied ist immer noch hier: 8px und 6px

    
Mikhail Gubanov 25.02.2014, 11:49
quelle

1 Antwort

3

Vertikale Zentrierung von Schriftarten ist kompliziert, da% %_% auf die Mitte des bereitgestellten Bereichs ausgerichtet wird, sodass jedes Zeichen aus der ausgewählten Schrift in diesen Bereich passt. Ein grundlegender Überblick, warum dies so ist, finden Sie im Wikipedia Baseline (Typografie) Artikel

Sie können versuchen, die Metrik der spezifischen Schriftart zu kompensieren, indem Sie

verwenden
  • TextBlock
  • GetEmHeight(FontStyle)
  • GetCellAscent(FontStyle)
  • GetCellDescent(FontStyle)

in der Klasse GetLineSpacing(FontStyle) . Passen Sie die Platzierung von FontFamily an.

Quelle: Gewusst wie: Schriftgrößen abrufen

Aber ich würde wirklich nicht raten, dies zu tun, denn es gibt Zeichen, die den Raum wie TextBlock und Á verwenden könnten, die unterschiedliche Höhen und Linienplatzierungen haben.

Sie haben möglicherweise eine bessere Standardlayout-Erfahrung mit Schriftarten, die j wie monospaced sind, die für Consolas ziemlich genau in der Mitte des Rahmens gedruckt werden.

    
Petr Vávro 26.04.2016 08:07
quelle

Tags und Links