Почему FontStretch не работает в WPF?

Я пробую свойство установки FontStretch на TextBlock в WPF, но кажется, что это не работает. Я попробовал Расширенный, Сжатый, и т.д. но текстовое появление не изменяется.

Я работаю над Windows XP с Платформой 4.0 и протестировал и с Verdana и с Arial.

Это работает только над Windows 7 или только с некоторыми определенными шрифтами?

Править: Если это не работает со всеми шрифтами, есть ли список шрифтов, которые поддерживают эту функцию? Или действительно ли возможно изменить шрифт как Verdana/Arial для поддержки его?

16
задан Drake 1 June 2010 в 08:51
поделиться

4 ответа

Чтобы получить эффект, аналогичный FontStretch, в шрифте, который не поддерживая его, вы можете использовать LayoutTransform для TextBlock:

<Application.Resources>
  <ScaleTransform x:Key="FontStretchCondensed" ScaleX="0.8" />
  <ScaleTransform x:Key="FontStretchExpanded" ScaleX="1.2" />
</Application.Resources>

...

<TextBlock Text="This is my text"
           LayoutTransform="{StaticResource FontStretchCondensed}" />

Это также можно установить в стиле, если вы хотите, чтобы весь текст в TextBlocks отображался сжатым:

<Style TargetType="TextBlock">
  <Style.Setters>
    <Setter Property="LayoutTransform" Value="{StaticResource FontStretchCondensed}" />
  </Style.Setters>
</Style>
26
ответ дан 30 November 2019 в 16:30
поделиться

Я считаю, что FontStretch работает не со всеми шрифтами.

2
ответ дан 30 November 2019 в 16:30
поделиться

Работает только для шрифтов OpenType. Для получения дополнительной информации:

http://en.wikipedia.org/wiki/OpenType

http://www.adobe.com/type/opentype/

http://www.microsoft.com/ typography / WhatIsOpenType.mspx

2
ответ дан 30 November 2019 в 16:30
поделиться

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

Чтобы узнать, какие шрифты поддерживают FontStretch, вам нужно искать шрифты, которые имеют отдельный файл шрифта, например, Condensed или Expanded. И только правильно связанные шрифты TrueType/OpenType будут работать. Некоторые производители шрифтов не связывают растянутые или сжатые варианты своих шрифтов с обычной версией, поэтому WPF понятия не имеет, что эти варианты шрифтов связаны.

6
ответ дан 30 November 2019 в 16:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: