WPF自定义错误处理对话框?

时间:2009-04-26 17:48:08

标签: c# wpf exception error-handling

我正在尝试设置我的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中正确执行此操作。

有什么想法吗?

2 个答案:

答案 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