I tried Glyphs and FontStretch and couldn’t easily get the result I was looking for. I was able to come up with an approach that works for my purposes. Maybe it will work for others, as well.
<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>
I can bind to any string and don’t need to do any character width detection to set the spacing properly. The right margin is the space between the letters.
Example: