【问题标题】:WP 8.1 (RT) issue with MessageDialog on device/emulator with Windows 10带有 Windows 10 的设备/模拟器上的 MessageDialog 的 WP 8.1 (RT) 问题
【发布时间】: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


【解决方案1】:

推送给 Insider 的最新版操作系统解决了这个问题。 构建 10.586.29。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2015-12-16
    • 2023-03-10
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多