我正在尝试设置我的WPF应用程序,以便在未处理异常时弹出错误对话框。在好的'WinForms'中,这可以通过添加
来实现Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
到Program.cs文件,然后在事件处理代码中显示您想要的任何对话框。在WPF中,我尝试使用
app.Dispatcher.UnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(Dispatcher_UnhandledException);
但是,当我在错误处理自定义窗口上使用Show()时,应用程序立即转到“blahblah.exe已停止工作......”并关闭。如果我使用ShowDialog(),窗口可以使用,直到它关闭,然后相同的“......已经停止工作......”对话框弹出并死掉。
在WinForms中,似乎关闭任何错误对话框都会允许应用继续运行,具体取决于异常的严重程度。我似乎无法弄清楚如何在WPF中正确执行此操作。
有什么想法吗?
答案 0 :(得分:7)
您需要在EventArgs中将Handled设置为true。
答案 1 :(得分:0)
在Aplication.xaml.vb中,这个文件有很多方法可以帮助主题,故事板和其他东西,你需要在这个文件中有类似的东西。适合我,希望你能
Private Sub Application_DispatcherUnhandledException(ByVal sender As Object, ByVal e As System.Windows.Threading.DispatcherUnhandledExceptionEventArgs) Handles Me.DispatcherUnhandledException
Dim lWinError As New winError("Ocurrio un error no controlado en la aplicacion")
lWinError.ShowDialog()
e.Handled = True
End Sub