我试图在WPF中通过XAML将大写转换为小写,如下所示:
<TextBox Height="86" CharacterCasing="Upper"/>
我希望通过TextBlock
,Label
和Button
实现相同的方案。
我该怎么做?
答案 0 :(得分:8)
您应该使用值转换器:
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;
}
}
答案 1 :(得分:2)
一种方法是使用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();
}
答案 2 :(得分:0)
请看一下:How to make all text upper case / capital?。
更一般地说,每次要转换值进入控件时,请考虑转换器并自行编写(如果已存在则使用它)。
您可以在此处找到有关转换器的其他文档:http://wpftutorial.net/ValueConverters.html。