如何在WPF中使用XAML将小写转换为大写?

3
我尝试通过WPF中的XAML将大写字母转换为小写字母,如下所示:
<TextBox Height="86" CharacterCasing="Upper"/>

我希望能够使用、


这对于许多控件来说并不是直接可用的,您需要创建自定义转换器并使用它。 - Ravi Y
ryadavilli,我不知道如何创建自定义转换器。请给我你的东西。 - CHANDRA
为什么问题与标题不匹配?小写 ↔ 大写? - Pang
3个回答

9
您应该使用值转换器:

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
最好能说明如何在XAML中使用它,特别是在将资源绑定为文本时。https://dev59.com/2XI-5IYBdhLWcg3wn5y5#1762678 - CularBytes

3
一种方法是使用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();
}

你可以这样做,但这非常依赖具体情况 - 你需要为每个控件都这样做。正如David Button在这个页面上提到的那样,使用_value converters_会更好。它们不仅可重复使用,而且是WPF的标准做法。 - user585968

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接