C# “WPF自定义错误处理”对话框?

C# “WPF自定义错误处理”对话框?,c#,wpf,exception,error-handling,C#,Wpf,Exception,Error Handling,我正在尝试设置我的WPF应用程序,以便在异常未处理时,弹出一个错误对话框。在良好的ol’WinForms中,通过添加 Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 然后在事件处理代码中显示所需的任何对话框。在WPF中,我尝试使用 app.Dispatcher.UnhandledException += new System

我正在尝试设置我的WPF应用程序,以便在异常未处理时,弹出一个错误对话框。在良好的ol’WinForms中,通过添加

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
然后在事件处理代码中显示所需的任何对话框。在WPF中,我尝试使用

app.Dispatcher.UnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(Dispatcher_UnhandledException);
但是,当我在错误处理自定义窗口上使用Show()时,应用程序立即转到“blahblah.exe已停止工作…”并关闭。如果我使用ShowDialog(),窗口在关闭之前是可用的,然后相同的“…已停止工作…”对话框弹出并消失

在WinForms中,似乎关闭任何错误对话框都会允许应用程序继续运行,这取决于异常的严重程度。我似乎不知道如何在WPF中正确地执行此操作


有什么想法吗?

您需要在EventArgs中将Handled设置为true。

在Aplication.xaml.vb中,此文件有许多方法可以帮助主题、storyborads和其他内容,您需要在该文件中使用类似的内容。为我工作,希望你也能

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