3

我尝试在 WPF 中通过 XAML 将大写字母转换为小写字母,如下所示:

<TextBox Height="86" CharacterCasing="Upper"/>

我想用TextBlock,Label和实现相同的场景Button

我该怎么做?

4

3 回答 3

10

您应该使用值转换器:

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;
    }
}
于 2013-08-08T10:53:34.373 回答
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();
}
于 2012-12-21T15:23:42.357 回答
0

看看那个:如何使所有文本大写/大写?.

更一般地说,每次您想将一个值转换为控件时,请考虑一个转换器并自己编写它(或者如果它已经存在,则使用它)。

您可以在此处找到有关转换器的其他文档:http ://wpftutorial.net/ValueConverters.html 。

于 2012-12-21T13:08:44.590 回答