我正在創建一個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. 大寫字母的第一個字母
- 3. 在文本框中輸入文本時,我想讓文本的第一個字母自動大寫
- 4. 第一個字母大寫
- 5. 大寫數組中的第一個字母的文本
- 6. 第一個字母大寫小寫
- 7. Swift大寫字母中每個單詞的第一個字母
- 8. 將文件名第一個字母大寫的腳本
- 9. 大寫字母中的第一個字母?
- 10. 的首字母大寫只有大寫第一個字的f.label
- 11. grep第一個和自由文本格式的小寫字母
- 12. 如何大寫自定義textview中的第一個字母?
- 13. 大寫字母的字符串的第一個字母只
- 14. 大寫第一個字母大寫但不改變大寫
- 15. 尋找第一個大寫字母
- 16. BASH - 讓第一個字母大寫
- 17. XSLT2.0第一個字母大寫
- 18. C使第一個字母大寫
- 19. 大寫每個大寫單詞的第一個字母
- 20. 僅在Python中使用第一個字母大寫字母
- 21. 大寫文件中的第一個字母
- 22. 檢查文件中的第一個字母大寫
- 23. 將文件中每行的第一個字母改爲大寫
- 24. 如何大寫第一個字母的文字
- 25. 如何匹配的第一個字母是大寫/大寫字母在PHP?
- 26. Javascript/jQuery大寫變音字母的第一個字母
- 27. EditText的第一個字母大寫字母
- 28. 的strftime使第一個字母大寫(大寫)在PHP
- 29. 自動大寫化合物名稱中的第一個字母(EditText,Android)
- 30. 大寫列表中每個字符串的第一個字母大寫
謝謝老兄,我一直在尋找somethink這樣............ – Anu
此外,在文本綁定,如果你把'UpdateSourceTrigger = PropertyChanged',該轉換器將運行而不是當TextBox失去焦點時。 –