我想使用 Label 或 TextBlock 来显示一个小写字母并附加我从资源中获得的“:”字符串。例如这样的:
<Label Content="{x:Static Localization:Captions.Login}" />
其中 Captions.Login 是字符串“Login”,我认为输出应该是:“login:”。我为标签添加了一个模板,它附加了“:”,但我无法在这个模板中小写我的字符串:
<ControlTemplate x:Key="LabelControlTemplate" TargetType="{x:Type Label}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<TextBlock>
<Run Text="{TemplateBinding Content}"/>
<Run Text=":"/>
</TextBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
在没有 Controltemplate 的情况下使用 xaml 行,我可以获得相同的结果:
<Label Content="{x:Static Localization:Captions.Login}" ContentStringFormat="{}{0}:" />
所以最后,我的问题是如何在这种情况下引入小写功能(注意我不想使用 TextBox 和重新样式来实现这一点)