2

当以前可见的 MenuItem 变为隐藏时,DotNet 4.0 会引发运行时 ComException。切换到 DotNet 3.5 时,不再抛出异常。

设置

  • 创建新的 WPF DotNet 4.0 项目
  • 将以下 XAML 代码添加到默认网格

    <Menu Height="23"> <MenuItem Header="Item1"> <MenuItem Header="SubItem1"/> </MenuItem> <MenuItem Header="Item2"> <MenuItem Header="SubItem2" /> </MenuItem> </Menu>

  • 确保在 Debug->Exceptions 下选中“Common Language Runtime Exceptions”

  • 运行应用程序并单击第一个菜单项,然后单击第二个菜单项,然后将鼠标指针移回第一个菜单项

有谁知道解决此问题的特定方法?

4

2 回答 2

0

通过在用户有机会从 GUI 中调用相关控件之前,从代码中调用相关控件,可以防止引发 UI 自动化异常。为什么?

例如

i1.IsSubmenuOpen = false;
i2.IsSubmenuOpen = true;
i2.IsSubmenuOpen = false;
i1.IsSubmenuOpen = true;
于 2012-08-31T11:03:25.087 回答
0

一组 Windows 7 更新解决了这个问题。奇怪!

我已经运行了大约 1 年没有更新的 Windows 7(64 位)。应用大量累积更新后,问题就消失了。

于 2012-09-12T10:45:54.887 回答