1

ChildWindow 控件有一些问题,我创建了一个错误窗口控件,该控件在 app.xaml.cs 中捕获到未处理的异常后显示。问题是当我尝试显示错误窗口时,有时它可以正常工作,但有时我会遇到这个讨厌的异常:

消息:对 COM 组件的调用已返回错误 HRESULT E_FAIL。

堆栈跟踪:在 MS.Internal.XcpImports.CheckHResult(UInt32 hr) 在 MS.Internal.XcpImports.SetValue(INativeCoreTypeWrapper obj, DependencyProperty property, Boolean b) at System.Windows.DependencyObject.SetValue(DependencyProperty property, Boolean b) at System .Windows.Controls.Primitives.Popup.set_IsOpen(Boolean value) at System.Windows.Controls.ChildWindow.Show() at FrontEnd.SL.Util.GuiLogger.ShowErrorWindow(ErrorDetails details, ErrorSeverity 严重性)


您看到的跟踪位于 ChildWindow 的 Show() 方法中。
换句话说,我的代码是:
ErrorWindow errorWin= new ErrorWindow();
错误Win.Show(); 非常感谢
ErrorWindow:ChildWindow 的任何帮助..

4

2 回答 2

1

在我看来,使用 ChildWindow 控件会容易出现一些问题。如果现有的 VisualTree 由于异常而处于不一致/损坏的状态,会发生什么?

您必须在应用程序范围内“处理”未处理的异常的最佳机会是完全替换 VisualRoot 持有的现有对象。

于 2009-12-28T22:07:51.460 回答
0

如果加载子窗口的内容时出现问题,也会发生这种情况。在我的例子中,我在用户控件的代码隐藏和它的 xaml 中指定了不同的命名空间,这导致了这个神秘的错误。

于 2010-08-05T12:32:26.997 回答