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

C# 如何通过XAML将WPF中的小写转换为大写?,c#,wpf,xaml,textbox,lowercase,C#,Wpf,Xaml,Textbox,Lowercase,我尝试在WPF中通过XAML将大写转换为小写,如下所示: <TextBox Height="86" CharacterCasing="Upper"/> 我想用TextBlock、Label和按钮实现相同的场景 我该怎么做呢?看看这个: 更一般地说,每次您想要将一个值转换为控件时,请考虑一个转换器并自己编写它(如果它已经存在,也可以使用它) 您可以在此处找到有关转换器的其他文档:。一种方法是使用NotifyOnTargetUpdated并处理TextChanged事件 XAML

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

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

我想用
TextBlock
Label
按钮实现相同的场景

我该怎么做呢?

看看这个:

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


您可以在此处找到有关转换器的其他文档:。

一种方法是使用
NotifyOnTargetUpdated
并处理
TextChanged
事件

XAML


您应该使用值转换器:


这不是直接用于许多控件,您将创建自定义转换器并使用它。ryadavilli,我不知道如何创建自定义转换器。请给我您的资料。为什么问题与标题不匹配?小写↔ 大写?@ChandruA如果这个答案对你有帮助,请告诉我。你可以这样做,但它是非常具体的-你需要为每个控件这样做。使用David Button在本页中提到的值转换器更好。它们不仅是可重用的,而且是WPF的工作方式。如果能在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();
}
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;
    }
}