Вся документация, которую я могу найти, и каждый поиск, который я выполняю, продолжает возвращаться с утверждением, что в Silverlight, когда вы устанавливаете FontHeight, это высота в пикселях, и аналогично для LineHeight, например, в. текстовый блок. Но на практике это совсем не так: когда я устанавливаю высоту шрифта (и высоту строки) в 22 с помощью обычного шрифта, такого как Lucida Sans Unicode, фактическая высота между строками составляет 33 пикселя. (На самом деле 33 и дробь.)
Чтобы обойти это, я попытался сделать то, что делал в Java-апплетах: использовать метрики шрифта, чтобы спросить, какой у меня текст на самом деле. Единственный способ сделать это, как я обнаружил, - визуализировать образец текста в закадровый TextBlock, измерить его и посмотреть, насколько высоким он окажется. Он дал очень удобный ответ: 32 пикселя.
Обратите внимание, что это почти правильно. Текстовый блок TextBlock отображал шрифт высотой 33 пикселя, а экранный - 32 пикселя. Единственный способ точно измерить мой текст - это поставить блок «за кадром» на экране, прозрачный и позади реального экрана. Затем измерение возвращается 33.
Что мне здесь не хватает? Почему все говорят, что высота указана в пикселях, но я нахожу, что число здесь представляет фактическую высоту, измеряемую в полутора пикселях, и, кроме того, точное соотношение изменяется в зависимости от того, является ли элемент управления активной страницей или отстраненный и самодостаточный? Что я не понимаю ??
Добавлено примечание : я знаю разницу между высотой, занимаемой строкой текста, и высотой фактических глифов. Но в той же документации, в которой говорится, что высота шрифта указана в пикселях, также говорится, что высота строки указывается в пикселях и по умолчанию совпадает с высотой шрифта. Это ясно подразумевает, что высота шрифта должна включать все используемое вертикальное пространство, а не только высоту глифа.
Последнее замечание : В конце концов, моя проблема в том, что я постоянно сталкиваюсь с дезинформацией о серебряном свете, а потом забываю, где я ее читаю, и перепутал ее с точной информацией. Например, где я читал, что Canvas тянется, чтобы вместить его содержимое? Это не так.