页面中的一个文本框。
我不能使用转换器(它没有工作),我不能使用CharacterCasing property
当我写文本时,如何将文本框大写?
我使用Windows运行时为Windows 8.1开发,所以我在互联网上找不到很多帮助
我的代码:
KeyUp:
String str = "hello";
str = str.ToUpper();
str.Select(str.Count(), 0);
KeyDown:
bool bModify = true;
我的XAML代码:
<TextBox Name="Name" KeyUp="KeyUp" FontSize="20" Margin="15" Grid.Column="1" Grid.Row="0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" KeyDown="KeyDown"/>
答案 0 :(得分:5)
您可以按原样保留TextBox
,但如果不在焦点位置 - 请将其隐藏并显示TextBlock
,而不是使用相同的文字,但设置Typography.Capitals="SmallCaps"
。
否则 - 这可能有效:
<TextBox
x:Name="tb"
Width="500"
VerticalAlignment="Center"
HorizontalAlignment="Center"
KeyDown="OnKeyDown"
TextChanged="OnTextChanged"/>
C#
private void OnKeyDown(object sender, KeyRoutedEventArgs e)
{
DoTheAllCapsThing();
}
private void OnTextChanged(object sender, TextChangedEventArgs e)
{
DoTheAllCapsThing();
}
private void DoTheAllCapsThing()
{
var start = tb.SelectionStart;
var length = tb.SelectionLength;
tb.Text = tb.Text.ToUpper();
tb.Select(start, length);
}