2

DotNet 4.0 は、以前は表示されていた MenuItem が非表示になると、ランタイム 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」がチェックされていることを確認します。

  • アプリケーションを実行し、最初のメニュー項目をクリックしてから、2 番目のメニュー項目をクリックし、マウス ポインタを最初のメニュー項目に戻します。

この問題を回避する具体的な方法を知っている人はいますか?

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 の一連の更新により、この問題が修正されました。奇妙な!

Windows 7 (64 ビット) をアップデートなしで約 1 年間実行しています。累積的な更新の大規模なセットを適用した後、問題は解消されました。

于 2012-09-12T10:45:54.887 に答える