Все эти фрагменты текста выглядят одинаково, но я пытаюсь заставить их выглядеть по-другому. Я хочу маленькие заглавные буквы текста. Что мне здесь не хватает, чтобы заставить работать эффект типографики маленьких заглавных букв?
Чтобы воспроизвести это, откройте Visual Studio 2008, «Файл» | «Новый проект», создайте новое приложение Windows | WPF, вставьте разметку ниже в Window1.xaml и запустите его.
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<FlowDocumentReader>
<FlowDocument>
<Paragraph>
<Run>Some text</Run> <LineBreak />
<Run Typography.Capitals="SmallCaps">Some text</Run> <LineBreak />
<Run Typography.Capitals="AllSmallCaps">Some text</Run> <LineBreak />
<Run Typography.Capitals="PetiteCaps">Some text</Run> <LineBreak />
<Run Typography.Capitals="AllPetiteCaps">Some text</Run> <LineBreak />
</Paragraph>
</FlowDocument>
</FlowDocumentReader>
</Grid>
</Window>
Судя по первому ответу, кажется, что если вы укажете конкретный шрифт, вы можете получить что-нибудь. Измените начальный тег FlowDocument на:
<FlowDocument FontFamily="Palatino Linotype">
.. и вы получите SmallCaps и AllSmallCaps, но не PetiteCaps или AllPetiteCaps. Так что это зависит от шрифта. Но это вызывает другие вопросы:
- Почему шрифт по умолчанию (который очень похож на Times New Roman) не поддерживает их?
- Поддерживают ли их другие широко используемые шрифты (например, местный эквивалент Courier New)?
- Есть ли список поддерживаемых шрифтов?
- Какой процент шрифтов будет поддерживать это - большинство, некоторые или немногие?
- Можете ли вы определить в коде, что поддерживает шрифт - если это так, я мог бы подделать AllSmallCaps - например, путем преобразования текста во все столицы и масштабирования на 80%. Но не SmallCaps.