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

10

我正在尝试设置我的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个回答

8

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


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接