Есть несколько подходов к этому.В каждом конкретном случае вам могут потребоваться все прописные или строчные буквы.Вы можете легко применить ValueConverter, который будет применять логику и возвращать значение.
Быстрый пример реализации этого типа:
<converters:LowerCase x:Key="toLowerConverter"/>
<ControlTemplate TargetType="CustomControlYouMade">
<HeaderedContentControl Header="{Binding RelativeSource={RelativeSource AncestorType={x:Type CustomControlYouMade}}, Path=Header, Converter={StaticResource toLowerConverter}}" />
</ControlTemplate>
И логика преобразователя:
public sealed class LowerCase : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
var str = value as string;
return string.IsNullOrEmpty(str) ? string.Empty : str.ToLower();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {}
}
Для расширенных параметров типографии, таких как лигатуры, нижний индекс / верхний индекс, swash, и так далее. Вам понадобится совместимый шрифт OpenType.Посмотрите эту статью MSDN , чтобы узнать, что возможно.