我尝试在 WPF 中通过 XAML 将大写字母转换为小写字母,如下所示:
<TextBox Height="86" CharacterCasing="Upper"/>
我想用TextBlock
,Label
和实现相同的场景Button
。
我该怎么做?
您应该使用值转换器:
public class ToUpperValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var str = value as string;
return string.IsNullOrEmpty(str) ? string.Empty : str.ToUpper();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
一种方法是使用NotifyOnTargetUpdated
和处理TextChanged
事件。
XAML
<TextBlock Name="TB" Text="{Binding Path=YourProperty, NotifyOnTargetUpdated=True}"
TargetUpdated="TB_TargetUpdated" />
背后的代码
private void TB_TargetUpdated(object sender, DataTransferEventArgs e)
{
TB.Text = TB.Text.ToUpper();
}
看看那个:如何使所有文本大写/大写?.
更一般地说,每次您想将一个值转换为控件时,请考虑一个转换器并自己编写它(或者如果它已经存在,则使用它)。
您可以在此处找到有关转换器的其他文档:http ://wpftutorial.net/ValueConverters.html 。