我正在创建一个wpf应用程序。我必须把所有的文本框首字母大写,如果用户输入小,那么它应该用鼠标大写格式化。我需要最好的方式来做到这一点,请别人帮助我。自动大写文本框中的第一个字母
1
A
回答
3
极大地做它的最佳方法取决于你如何做你的应用程序,但@ H.B.的答案很可能是要走的路。
为了完整起见,另一种方式,如果这样做是使用像这样的转换器:
<!-- Your_Window.xaml -->
<Window x:Class="..."
...
xmlns:cnv="clr-namespace:YourApp.Converters">
<Window.Resources>
<cnv.CapitalizeFirstLetterConverter x:Key="capFirst" />
</Window.Resources>
...
<TextBox Text="{Binding Path=SomeProperty, Converter={StaticResource capFirst}}" />
这里假设你的窗口的数据上下文设置为具有读取一个类的实例/写名为类型为字符串的SomeProperty的属性。 转换器本身将是这样的:
// CapitalizeFirstLetterConverter.cs
using System;
using System.Data;
using System.Globalization;
namespace YourApp.Converters {
[ValueConversion(typeof(string), typeof(string))]
public class CapitalizeFirstLetterConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
// this will be called after getting the value from your backing property
// and before displaying it in the textbox, so we just pass it as-is
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
// this will be called after the textbox loses focus (in this case) and
// before its value is passed to the property setter, so we make our
// change here
if (value is string) {
var castValue = (string)value;
return char.ToUpper(castValue[0]) + castValue.Substring(1);
}
else {
return value;
}
}
}
}
您可以了解更多有关转换器here。
1
您可以将样式放入Application.Resources
以处理所有TextBoxes
上的LostFocus
,那么您只需相应地更改Text属性。
<!-- App.xaml - Application.Resources -->
<Style TargetType="{x:Type TextBox}">
<EventSetter Event="LostFocus" Handler="TextBox_LostFocus" />
</Style>
// App.xaml.cs - App
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
{
var tb = (TextBox)sender;
if (tb.Text.Length > 0)
{
tb.Text = Char.ToUpper(tb.Text[0]) + tb.Text.Substring(1);
}
}
1
我对游戏有点迟,但如果有其他人需要它,这个DLL会实时大写第一个字母。例如,你不需要将鼠标移出。
http://www.mardymonkey.co.uk/blog/auto-capitalise-a-text-control-in-wpf/
相关问题
- 1. 第一个字母大写小写
- 2. Swift大写字母中每个单词的第一个字母
- 3. 将文件名第一个字母大写的脚本
- 4. 大写字母中的第一个字母?
- 5. grep第一个和自由文本格式的小写字母
- 6. 如何大写自定义textview中的第一个字母?
- 7. BASH - 让第一个字母大写
- 8. 寻找第一个大写字母
- 9. 大写每个大写单词的第一个字母
- 10. 将文件中每行的第一个字母改为大写
- 11. 大写文件中的第一个字母
- 12. 如何大写第一个字母的文字
- 13. EditText的第一个字母大写字母
- 14. 自动大写化合物名称中的第一个字母(EditText,Android)
- 15. 用红宝石字母大写第一个字母
- 16. 大写字母冒号后跟第一个字母?:Javascript
- 17. 第一个字母不应该在文本框中数字?
- 18. 如何将字符串中的第一个字母大写?
- 19. 如何在字符串中使用Javascirpt大写字母的第一个字母
- 20. 大写字母中的三个字母单词的第一个和最后一个字母
- 21. 如何大写第一个和第三个字母?
- 22. 第一个数组项目的大写字母,但仍然有小写字母
- 23. 当第一个字母是字母数字时接受文本框的值
- 24. C源代码将字符串中的第一个字母从小写字母改为大写字母
- 25. 当第一个字符是数字时更改为第一个大写字母
- 26. 使用phpMyadmin大写mySQL表中名称的第一个字母
- 27. edmx在第一个字母大写的表中导入表格
- 28. 如何将一行中的第一个字母设置为记事本++中的大写字母
- 29. 用第一个文本框输入自动填充第二个文本框
- 30. 制作所有句子大写字母的第一个字符
谢谢老兄,我一直在寻找somethink这样............ – Anu
此外,在文本绑定,如果你把'UpdateSourceTrigger = PropertyChanged',该转换器将运行而不是当TextBox失去焦点时。 –