来自UIAutomationProvider的ComException

时间:2012-08-29 12:06:26

标签: wpf xaml comexception

当以前可见的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>

  • 确保&#34;公共语言运行时例外&#34;在Debug-&gt; Exceptions

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

是否有人知道解决此问题的具体方法?

2 个答案:

答案 0 :(得分:0)

通过从代码调用相关控件,在用户有机会从GUI执行此操作之前,可以防止抛出UI Automation异常。为什么呢?

e.g。

i1.IsSubmenuOpen = false;
i2.IsSubmenuOpen = true;
i2.IsSubmenuOpen = false;
i1.IsSubmenuOpen = true;

答案 1 :(得分:0)

一组Windows 7更新修复了此问题。奇异!

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