TextOptions.TextFormattingMode, влияющий на текст жирным шрифтом

у нас была проблема где вес шрифта некоторого текста Bold сделал его меньше, чем текст, взвешенный обычным шрифтом. Я'мы поняли, что это потому, что ямы установили TextFormattingMode в "Дисплей»; проблема не вне происходит, если TextFormattingMode установлен в "Ideal».

Например, следующий код:

 
 
 
 
 

Производит следующее:

Если я увеличу размер шрифта до 14 для последних двух меток, жирный текст станет больше, чем обычный взвешенный текст.

Мой вопрос: есть ли параметр, который я могу использовать, чтобы иметь жирный 12-точечный текст с TextFormattingMode, установленным в "Дисплей» это тот же размер / немного больше, чем обычный взвешенный текст?

 GrandMasterFlush30 окт. 2012 г., 15:37
Последний абзац, яхотел бы знать, если естьЭто параметр, при котором жирный текст будет иметь тот же размер или больше, чем обычный взвешенный текст, в то же время придерживаясь Display TextFormatingMode и того же размера шрифта.
 GrandMasterFlush05 нояб. 2012 г., 11:24
@Joe - я просто подумал, что "Дисплей» Режим дал лучшие результаты на Windows, когда я посмотрел на него.
 paparazzo30 окт. 2012 г., 15:11
В чем вопрос?
 Joe02 нояб. 2012 г., 17:38
Почему нетт "Идеальный» настройки отвечают вашим требованиям? Кажется, чтобы предоставить вам функциональностьВы ищете ... (жирный шрифт = того же размера или больше, чем обычный текст)

Ответы на вопрос(2)

почему это происходит. Я посмотрел на него и поднял его в SNOOP и, конечно же, он стал меньше.

Кажется, все настройки шрифта между 10,5 и 12,4 имеют эту проблему. Шрифты 8, 9 или 10, 10.4 и 12.5, 13, 14 - нет.

Похоже, время связаться с Microsoft. Отправить ошибку.

Кроме того, это связано с настройками дисплея Windows. Когда я изменил настройки дисплея со 100% на 125%, проблема изменилась. Теперь они оба выглядят примерно одинакового размера, а не меньше.

Решение Вопроса

что жирный текст слишком короткий, а в том, что обычный текст слишком длинный.

Там'За это время WPF изначально поставлялся на .NET 3.0, поддерживая толькоИдеальный» режим для масштабирования текста. Этот режим поддерживает независимое масштабирование с истинным разрешением, строка текста будет иметь предсказуемую длину в дюймах на различных устройствах отображения с разным разрешением точек на дюйм. Это не было принято хорошо, это вызвало массовые жалобы программистов WPF, которые нене нравится размытый текст, который это производит. Это видно на вашем скриншоте. Обратите внимание, что левый стержень жирной буквы m слишком толстый в идеальном режиме, но не в режиме отображения.

На .NET 4.0 команда WPF поддержала новый способ визуализации текста, который называетсяДисплей», Который отображает текст так, как это делает GDI, применяя правила намека на шрифт, чтобы настроить форму буквы, чтобы она лучше соответствовала пиксельной сетке монитора. Это имеет тенденцию растягивать буквы, особенно когда их основа имеет только один пиксель. Чем меньше размер точки, тем более выраженным становится это. Из-за этого текст хорошо читается, но независимая от разрешения рендеринг теряется.

Winforms также прошли аналогичную эволюцию, от Graphics.DrawString () до TextRenderer.DrawText ().

этоСообщение блога У команды WPF есть подробности.

Ответ на ваш вопрос, таким образом, нет.

 Hans Passant06 февр. 2014 г., 13:46
Да, это будет древняя плохая память когда-нибудьсетчатка" мониторы. Это займет некоторое время, ония уже 25 лет застрял на 96 dpi и многие программы этого не делаютсправиться с этим хорошо.
 GrandMasterFlush05 нояб. 2012 г., 11:28
Спасибо, что нашли время взглянуть, Ганс. Я'Я прочел кое-что из того, что вы упомянули в отношении внедряемого режима отображения, и подумал, что это может быть связано с этим, но нене знаю что. IIRC, не буду "Идеальный» режим подойдет всем, так как мониторы продолжают улучшаться?

Ваш ответ на вопрос