2015-07-10 52 views
0

如何在Windows phone中输入大写字符串TextBox Wpf c#。如何在Windows Phone中输入大写字符串TextBox Wpf c#

我在KeyDown事件上试过了。

void TxtPanno_KeyDown(object sender, KeyEventArgs e) 
    { 

    TxtPanno.Text = TxtPanno.Text.ToUpper(); //1 code. 

    TxtPanno.Text= CultureInfo.CurrentCulture.TextInfo.ToUpper(TxtPanno.Text); //2 code  

    TxtPanno.Text=Regex.Replace(TxtPanno.Text, "^[A-Z]", m => m.Value.ToUpper()); //3 code. 
    } 

但问题是这样的。

光标总是去左边。

回答

0

尝试做:

TxtPanno.Text = TxtPanno.Text.ToUpper(); 
TxtPanno.SelectionStart = TxtPanno.Text.Length; 
TxtPanno.SelectionLength = 0; 

它使文字大写,将光标移动到结束,并选择什么。

+0

@jonas它的工作: - TxtPanno.Text.Length-1; 1已删除。 –

+0

啊,对不起,编辑回答。很高兴它解决了你的问题。 =) – Jonas

+0

你的意思是说'TxtPanno.SelectionStart = TxtPanno.Text.Length;'是正确的答案吗? – Jonas

0

你不应该试图取代文本,而不是你应该应用样式这样

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

以上风格将使所有文本框大写,你可以把它改成只适用于特定的教科书这样

<TextBox CharacterCasing="Upper" /> 

然后当使用输入的文本时,使其为大写。

+0

@ noob此属性不适用于Windows Phone TextBox。 –

0

最后我试了这个代码,它的工作。

void TxtPanno_TextChanged(object sender, TextChangedEventArgs e) 
{ 

    TxtPanno.Text = TxtPanno.Text.ToUpper(); 
    TxtPanno.SelectionStart = TxtPanno.Text.Length; 

} 
+0

如果Jonas是提供答案的人,请接受他的**答案并删除您的答案。如果它真的是你自己的答案,那么接受你的答案。标记接受的答案以让用户知道您的问题有解决方案,这一点很重要。 –