我希望在WP7应用上从用户那里获得一些字母(默认值为7)。我正在尝试使用TextBox,虽然我没有和那个想法结婚。我目前的计划是使用Making TextBox Numbers Only for Windows Phone 7所描述的技术将字符限制为KeyUp事件上的字母(并将它们转换为大写字母)。我可以说,没有其他好方法可以做到。
我正在做同样的事情来限制字符数 - 如果TextBox中文本的长度是> 7,我删除了这个角色。
我已经在我的实现中遇到了bug(如何处理退格,特别是TextBox中的第一个字符),这让我觉得这个实现存在很多问题。
有没有更好的方法来限制TextBox中的文本长度?
答案 0 :(得分:6)
使用TextBox上的MaxLength属性将文本限制为特定长度。如果需要更改视图模型,可以将其绑定到属性。
使用key up事件处理程序来更改大小写。
答案 1 :(得分:0)
我意识到这是一个相当古老的帖子。在Windows Phone 8.1项目中,Maxlength对我不起作用,所以我在下面创建了一个事件处理程序:
private void txtBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (txtBox.Text.Length > 7)
{
txtBox.Text = txtBox.Text.Substring(0, 7);
// the cursor is now at the beginning of the box
// set it back to the end so there is no overwriting
txtBox.SelectionStart = txtBox.Text.Length;
txtBox.SelectionLength = 0;
}
}