我正在尝试按照Metro设计原则在 WPF 中开发一个用户界面 - 请参阅Scott Barnes website进行一项精彩的调查。
字符大小写是Metro里程碑之一,可以使用 text-transform 属性在 css 中轻松实现。
那么WPF控制呢?
在资源文件中声明菜单,标题,副标题的各种样式,并通过简单编辑应用的样式来修改大小写将非常有用。
注意:
[1] TextBox.CharacterCasing不适用,它只涉及手动输入的字符。
[2]我无法想象这个任务适当的值转换器。
答案 0 :(得分:0)
有几种方法可以解决这个问题。在每个案例的基础上,您可能需要所有大写或小写字符。您可以轻松应用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) {}
}
对于连字,下标/上标,花饰等高级排版选项,您需要兼容的OpenType字体。请参阅此MSDN article以查看可能的内容。