如何通过XAML将WPF中的小写转换为大写?

时间:2012-12-21 12:45:00

标签: c# wpf xaml textbox lowercase

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

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

我希望通过TextBlockLabelButton实现相同的方案。

我该怎么做?

3 个答案:

答案 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