WPF настраиваемое диалоговое окно обработки ошибок? - PullRequest
10 голосов
/ 26 апреля 2009

Я пытаюсь настроить свое приложение 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 ]

7 голосов
/ 26 апреля 2009

Вам нужно установить значение Handled в true в EventArgs.

0 голосов
/ 06 ноября 2009

В 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...