Как указать интервал между буквами или Кернинг в текстовом поле WPF?
Я хотел бы изменить интервал между символами в текстовом поле WPF.
Что-то вроде letter-spacing: 5px
вещь, которая доступна в CSS.
Я думаю, что это возможно в XAML; какой самый простой способ?
3 ответов
я попробовал глифы и FontStretch и не мог легко получить результат, который я искал. Я смог придумать подход, который работает для моих целей. Может быть, это сработает и для других.
<ItemsControl ItemsSource="{Binding SomeString}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"
Margin="0,0,5,0"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Я могу привязаться к любой строке и не нужно делать никакого определения ширины символа, чтобы правильно установить интервал. Правое поле-это пробел между буквы.
пример:
is FontStretch вариант для вас?
в противном случае вы можете посмотреть в этой есть изображение, показывающее, что означает предварительная ширина. Хотя я не делал этого раньше и не знаю, работает ли это увеличение правого и левого боковых подшипников может быть тем, что вы хотите!
для чего это стоит . . .
Если у вас есть возможность переключить реализацию на RichTextBox, это может быть проще, чем работа вокруг вы нашли сентябрь 2013. Я просто попробовал это для своих нужд, и это работает для того, что мне нужно. Я не вижу способа с RichTextBox контролировать Кернинг отдельных пространств, как это делают наборщики. Но TextBox съедал дополнительные пространства (консолидируя несколько смежных пространств в одно пространство), такие как HTML. Мне нужно было, чтобы пробелы отображали тот же интервал, что и в моей текстовой строке, и RichTextBox делает это.
<RichTextBox x:Name="MyRichTextBox"></RichTextBox>
Я не эксперт, но, похоже, вы не можете указать текстовое содержимое в XAML. Я должен был указать его в событии с кодом:
this.MyRichTextBox.AppendText("V A R I E D S P A C E S");