Какой шрифт используется, если Unicode-символ не найден в выбранном шрифте (Tahoma)? - PullRequest
2 голосов
/ 10 января 2012

Я написал пользовательский элемент управления WPF, который использует Tahoma в качестве шрифта для отображения строк Unicode, который работает нормально. Однако я заметил, что некоторые символы восточной Азии фактически отсутствуют в Tahoma, то есть этот шрифт не поддерживает все распространенные символы Юникода.

Однако, когда я отображаю строку, содержащую некоторые восточно-азиатские буквы, которые, как я полагаю, отсутствуют в Tahoma.ttf, символ в любом случае отображается правильно, вместо черного прямоугольника, который я ожидал получить за отсутствующий символ Юникода.

Так что из любопытства: есть ли какой-нибудь запасной механизм, т. Е. Windows 7 или C # WPF заменяют отсутствующие символы из запасного шрифта? Кто-нибудь может объяснить, как именно это работает, и какой шрифт фактически используется в качестве оллбека?

Ответы [ 2 ]

4 голосов
/ 10 января 2012

См. Font Fallback раздел FontFamily ссылки .

2 голосов
/ 11 января 2012

Большое спасибо H.B., благодаря вашему ключевому слову я смог найти этот действительно полезный ресурс от Microsoft, объясняющий, как работают Font Fallback и Font Linking:

http://msdn.microsoft.com/en-us/goglobal/bb688134

Вот хорошая цитата:

Пользователь под управлением Windows XP выбирает шрифт Tahoma для ввода текста сначала на английском, затем на иврите, а затем на телугу. Так как Tahoma является шрифтом OpenType, он поддерживает латиницу и иврит, но не содержит глифов телугу. Uniscribe обнаруживает отсутствие поддержки шрифтов и автоматически отображает скрипт на телугу, используя его запасной шрифт Gautami.

...