【问题标题】:Automatically capitalize all input in WPF自动大写WPF中的所有输入
【发布时间】:2010-10-24 14:00:34
【问题描述】:

有没有办法自动大写整个 WPF 应用程序中的所有输入?

【问题讨论】:

    标签: wpf input uppercase


    【解决方案1】:

    也许您可以使用转换器。 这是转换器的代码:

    using System;
    using System.Globalization;
    using System.Windows.Data;
    namespace SistemaContable.GUI.WPF.Converters
    {
        public class CapitalizeFirstLetter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                if (value != null)
                {
                    string stringToTitleCase = culture.TextInfo.ToTitleCase(value.ToString());
                    return stringToTitleCase;
                }
                else
                {
                    return null;
                }
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return value.ToString();
            }
        }
    }
    

    您需要在“ResourceDictionary”或“App.xaml”中引用它:

    <ResourceDictionary xmlns:converters="clr-namespace:SistemaContable.GUI.WPF.Converters">
        <converters:CapitalizeFirstLetter x:Key="CapitalizeFirstLetter"/>
    </ResourceDictionary>
    

    你可以这样使用它:

    <TextBox x:Name="txtNombre" Text="{Binding Usuario.Nombre, Converter={StaticResource CapitalizeFirstLetter}, UpdateSourceTrigger=PropertyChanged}"/>
    

    【讨论】:

      【解决方案2】:

      如果您想将单个TextBox 的输入大写,而不是像above 这样的所有TextBoxes,您可以使用以下命令:

      <TextBox CharacterCasing="Upper"/>
      

      【讨论】:

        【解决方案3】:

        我不知道这是否有帮助,它将句子中的所有首字母大写。

        http://www.mardymonkey.co.uk/blog/auto-capitalise-a-text-control-in-wpf/

        【讨论】:

        【解决方案4】:

        您可以使用以下属性将所有输入大小写到 TextBox 控件中:

        CharacterCasing="Upper"
        

        要应用于整个应用程序中的所有TextBox 控件,请为所有TextBox 控件创建样式:

        <Style TargetType="{x:Type TextBox}">
            <Setter Property="CharacterCasing" Value="Upper"/>
        </Style>
        

        【讨论】:

        • 我知道这并不能解决所有输入大小写问题,但大多数文本输入都会通过 TextBox 控件输入。
        • 我相信它是“TargetType”而不是“DataType”:
        • @Wes:很好。 DataType 用于 DataTemplates。已更新。
        【解决方案5】:

        我建议创建一个自定义文本框类并覆盖一个事件以自动将文本大写。首先,这取决于您是否希望在输入时或在输入完成后将文本大写。

        例如for 输入完成后

        public class AutoCapizalizeTextBox: TextBox
        {
          public AutoCapitalizeTextBox()
          {
          }
        
          public AutoCapitlizeTextBox()
          {
          }
        
          protected override void OnLostFocus(EventArgs e)
          {
            this.Text = this.Text.ToUpper();
        
            base.OnLostFocus(e);
          }
        }
        

        【讨论】:

          猜你喜欢
          • 2015-12-20
          • 1970-01-01
          • 1970-01-01
          • 2022-08-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-28
          • 1970-01-01
          相关资源
          最近更新 更多