Я ищу свойство в файле шрифта (из файлов WPF System.Windows.Media.Fonts
Typeface
или GlyphTypeface
) или непосредственно обращаюсь к файлу .ttf / .otf, которое позволит мне определить, есть ли такая программа, как Write /WordPad в Windows будет применять полужирный шрифт.По сути, некоторые шрифты, имеющие атрибут Bold, все равно получат дополнительную смелость, а некоторые - нет.Я пытаюсь выяснить, какая логика используется для этого определения.
Чтобы вручную увидеть это, скопируйте и вставьте следующее в Write / WordPad (или в Writer OOo, или в MS Word, или ...) и измените начертание шрифта каждой строки на его имя (т.е. примените Arial Black к Arial Black)
- Arial Black
- Arial Rounded MT Bold
- Arial Narrow
Теперь примените к ним жирный шрифт.Вы увидите, что # 2 и # 3 изменятся, но не # 1.
С # 3, однако, происходит нечто иное, чем два других - все вместе применяется другой шрифт.А именно ARIALNB .TTF (добавлено 'NB', которое Arial Narrow Bold ) вместо ARIALN.TTF (добавлено 'N', что Arial Narrow ).Таким образом, в случае этого шрифта жирный шрифт фактически не применяется.
Вернуться к списку.№ 1 не меняется, но № 2 меняется.# 1 вес «черный», а № 2 «жирный».Если вы возьмете жирную версию # 3, ARIALNB.TTF и примените к ней жирный шрифт, она будет действовать как # 1 - она не изменится.Но у него тот же вес, что и у # 2, у "Bold".
Другими словами, два полужирных шрифта (Arial Rounded MT Bold и Arrow Narrow Bold), но только Arial Rounded MT Bold применяется более жирным шрифтом.,В случае Arial Black у него нет жирного веса, но к нему также не применяется жирный жир.
Вот как это выглядит:
Интересно, что WPF не демонстрирует такого поведения (т.е. добавляет больше жирного шрифта), но Silverlight делает:
WPF (Обратите внимание, что FontFamily - "Arial Rounded MT"):
<StackPanel Orientation="Vertical">
<TextBlock FontSize="24" Text="Arial Rounded MT Bold" FontFamily="Arial Rounded MT"/>
<TextBlock FontSize="24" Text="Arial Rounded MT Bold" FontWeight="Black" FontFamily="Arial Rounded MT"/>
</StackPanel>
Silverlight (обратите внимание, что FontFamily является "Arial Rounded MT Bold"):
<StackPanel Orientation="Vertical">
<TextBlock FontSize="24" FontFamily="Arial Rounded MT Bold" >Arial Rounded MT Bold</TextBlock>
<TextBlock FontSize="24" FontFamily="Arial Rounded MT Bold" FontWeight="Bold" >Arial Rounded MT Bold</TextBlock>
</StackPanel>
Вопрос возвращается к: Какое свойство файла шрифта говоритпрограмма, которая добавляет жирный шрифт или нет? Я ищу флаг или свойство в файле шрифта, который сообщит мне эту логику.
Вот список других шрифтов, где применение "Bold" имеетбез эффекта: - Adobe Caslon Pro Bold - Adobe Garamond Pro Bold - Энди - Ариал Блэк - Белл Готик Стд Блэк - Белл Готик Лайт Чёрный - Берлин Санс ФБ Деми - Блэкоак Стд - Бодони МТ Блэк - Шарлемань Стд - Minion Pro Cond- Муар ExtraBold - Мириад Про Лайт - Тополь Стд - ПрестиGe Elite Std - Rockwell Extra Bold - Скрипт MT Bold - Segoe WP Black - Tekton Pro Ext - Трафарет Std