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
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
verwendenTextBlock
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.