我在WPF应用程序中有一个特定的TextBlock。 我需要为该特定的TextBlock创建大写文本。
尝试使用以下代码时出现此错误:
{"'TextUpperCase' is not a valid value for property 'Style'."}
知道怎么解决吗?
<Style x:Key="TextUpperCase" TargetType="{x:Type TextBox}">
<Setter Property="CharacterCasing" Value="Upper"/>
</Style>
<TextBlock
x:Name="ShopNameTextBlock"
TextWrapping="Wrap"
Text="{Binding Description, FallbackValue=Shop name}"
Style="TextUpperCase"
VerticalAlignment="Center"
FontFamily="/GateeClientWPF;component/Fonts/#Letter Gothic L"
FontSize="45"
Grid.ColumnSpan="2"
Margin="0,60,0,0"
FontWeight="Medium"
TextAlignment="Center"
Foreground="Black"
/>
答案 0 :(得分:8)
CharacterCasing
不是TextBlock
的有效属性,而是TextBox
的有效属性。
您可以拥有IValueConverter并将其用于将文本转换为上限的绑定。
声明转换器:
public class ToUpperValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
if (value is string)
{
return value.ToString().ToUpper();
}
return String.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
return Binding.DoNothing;
}
}
现在,在XAML中添加转换器的引用并使用如下:
<TextBlock Text="{Binding Description,
Converter={StaticResource ToUpperValueConverter}}"/>
答案 1 :(得分:-4)
要使用样式,必须首先在UserControl.Resources中声明:
<UserControl.Resources>
<Style x:Key="TextUpperCase" TargetType="{x:Type TextBox}">
<Setter Property="CharacterCasing" Value="Upper"/>
</Style>
</UserControl.Resources>