我有一些关于ChildWindow控件的问题,我创建了一个错误窗口控件,它在app.xaml.cs中捕获到未处理的异常后显示。问题是当我试图显示错误窗口时,有时它工作得很好,但有时我得到了这个令人讨厌的异常:
消息:对COM组件的调用返回了Error HRESULT E_FAIL。
堆栈跟踪:在MS.Internal.XcpImports.SetValue(INativeCoreTypeWrapper obj处的布尔值(UInt32 hr),在System.Windows.DependencyObject.SetValue(DependencyProperty属性处的布尔值b),在FrontEnd.SL.Util.GuiLogger.ShowErrorWindow(ErrorDetails System.Windows.DependencyObject.SetValue(DependencyProperty处的布尔值b),在System.Windows.Controls.Primitives.Popup.set_IsOpen(Boolean值处的布尔值b)在FrontEnd.SL.Util.GuiLogger.ShowErrorWindow(ErrorDetails MS.Internal.XcpImports.CheckHResult,ErrorSeverity severity)
您看到的跟踪位于ChildWindow的Show()方法中。
换句话说,我的代码是:
ErrorWindow errorWin=新ErrorWindow();
errorWin.Show();
其中ErrorWindow:ChildWindow
非常感谢您的帮助..
发布于 2009-12-29 06:07:51
在我看来,使用ChildWindow控件会容易出现一些问题。如果由于异常导致现任VisualTree处于不一致/损坏状态,会发生什么情况?
在应用程序的范围内“处理”未处理的异常的最好机会是完全替换VisualRoot持有的现有对象。
发布于 2010-08-05 20:32:27
如果加载子窗口的内容出现问题,也会发生这种情况。在我的例子中,我在用户控件的代码隐藏和它的xaml中指定了不同的名称空间,这导致了这个隐秘的错误。
https://stackoverflow.com/questions/1968682
复制相似问题