wil*_*ill 5 silverlight silverlight-4.0 windows-phone-7
在我的Windows Phone 7应用程序中,我有一个单行文本框.当用户按下{ENTER}时,我想接受文本框值并将文本框切换回正常的非编辑模式.
基本上,有没有办法以编程方式取消编辑文本框?
我已经尝试将视觉状态管理器强制进入正常模式,该模式确实改变了视觉样式,但文本框仍处于编辑模式,并且仍然显示屏幕键盘.
VisualStateManager.GoToState(
this.MyTextBox,
"Normal",
true);
VisualStateManager.GoToState(
this.MyTextBox,
"Unfocused",
true);
Run Code Online (Sandbox Code Playgroud)
还尝试以编程方式选择父控件,但似乎也不起作用.
我想我必须错过一些简单的事情,有人必须做了一百万次 - 任何帮助都非常感激.
谢谢,
更新:我试图将焦点设置为另一个控件,但这不起作用,SIP键盘永远不会消失.
但我用另一种方法想出来了.诀窍是使用IsReadOnly标志.当失去焦点或输入被按下时,我将控件设置为只读更新样式.我所要做的就是更新我的视觉效果,使它看起来正确,现在效果很好.
对于它的价值,我的代码现在看起来像这样:
private void MyTextBox_GotFocus(object sender, RoutedEventArgs e)
{
this.MyTextBox.IsReadOnly = false;
this.MyTextBox.SelectAll();
}
private void MyTextBox_LostFocus(object sender, RoutedEventArgs e)
{
this.MyTextBox.IsReadOnly = true;
}
private void MyTextBox_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
this.MyTextBox.IsReadOnly = true;
VisualStateManager.GoToState(
this.MyTextBox,
"ReadOnly",
true);
VisualStateManager.GoToState(
this.MyTextBox,
"Unfocused",
true);
VisualStateManager.GoToState(
this.MyTextBox,
"Valid",
true);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1402 次 |
| 最近记录: |