【发布时间】:2015-12-02 21:35:24
【问题描述】:
我最近完成了使用 Universal Apps 8.1 技术的应用程序。现在我正在使用 Windows 10 的设备上以及版本 10.0.10586.0 的模拟器上测试我的应用程序,但 MessageDialog 存在很大问题。
我有一个简单的应用程序 Universal app 8.1,它重现了问题。这是 XAML:
<StackPanel>
<TextBox />
<PasswordBox />
<Button Click="Button_Click" />
</StackPanel>
并且代码隐藏中有一个事件:
private async void Button_Click(object sender, RoutedEventArgs e)
{
MessageDialog msgDialog = new MessageDialog("a");
await msgDialog.ShowAsync();
}
当用户点击输入时,一切都很好。但是当用户点击按钮时,会显示 MessageDialog,之后,事情变得混乱,输入停止正常工作。例如 LostFocus 事件未触发,输入保持焦点状态。
当您将此代码放入 UWP 项目并部署到 Windows 10 移动设备/模拟器时,一切正常。
有什么想法吗?
附: ContentDialog 工作正常,但不支持 Windows 8.1。
编辑:
这里:https://onedrive.live.com/redir?resid=9F03F4A20B9FFCD!24843&authkey=!AHPXxcxSoPJnw3U&ithint=file%2czip 是带有示例应用程序和屏幕截图的 zip。
我已经在版本 10.0.10586 的模拟器上的 Visual Studio 2015 Update 1 以及相同版本的设备上对此进行了测试。
这是我的测试场景:
1) 点击文本框
2) 点击密码框
3) 点击屏幕上的任意位置
4) 结果(1.png)
文本框未被选中
密码框未选中
键盘被隐藏
5) 点击按钮
6) 使用关闭按钮关闭 MessageDialog
7) 点击文本框
8) 点击密码框
10) 点击屏幕上的任意位置
11) 结果 (2.png)
文本框被选中(有时)
密码框被选中
显示键盘
【问题讨论】:
-
我在 UWP 项目和 Universal 8.1 应用程序中测试了你的代码,我的操作系统版本是 windows 10 10586.11,我的移动模拟器版本是 10.0.10240.0。我使用本地机器和移动模拟器来测试这两个项目,我没有再次出现您的问题,它们的行为方式相同。默认情况下焦点在
TextBox上,您可以通过单击它们来获得焦点,当您单击按钮时,两个输入都失去焦点并变为灰色,关闭消息不会让输入获得焦点,直到你点击它们。 -
@panda - 我添加了解决方案和测试场景,在不同的计算机、模拟器和设备上重现错误。
-
@JerzyPiechowiak 我不知道如何解决这个问题。但我实际上可以重现您的错误,并且使用版本 10.0.10240.0 它不会发生。我会说这是 10.0.10586.0 版本中的错误
-
@Menses - 谢谢:) 我并不孤单展示。在本月,操作系统即将公开,很有可能许多(所有?)使用 MessageDialogs 和输入的应用程序将受到影响。
标签: c# xaml windows-phone-8.1 winrt-xaml windows-10-universal