2009-04-26 18 views
10

Estoy tratando de configurar mi aplicación WPF para que cuando no se maneje una excepción, aparezca un cuadro de diálogo de error. En buen ol' WinForms Esto fue posible mediante la adición deWPF cuadro de diálogo personalizado de gestión de errores?

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); 

Para su archivo Program.cs y luego mostrando lo que quería de diálogo en el código de manejo de eventos. En WPF He intentado utilizar

app.Dispatcher.UnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(Dispatcher_UnhandledException); 

Sin embargo, cuando se utiliza Show() en mi ventana personalizada de control de errores, la aplicación va inmediatamente a "blahblah.exe ha dejado de funcionar ..." y se cierra. Si utilizo ShowDialog(), la ventana se puede utilizar hasta que se cierre y luego aparezca el mismo diálogo "... ha dejado de funcionar ..." y se apaga.

En WinForms, parece que cerrar cualquier cuadro de diálogo de error permitiría que la aplicación continúe ejecutándose, dependiendo de la gravedad de la excepción. Parece que no puedo entender cómo hacer esto correctamente en WPF.

¿Alguna idea?

Respuesta

7

Deberá configurar Handled para que sea verdadero en EventArgs.

0

En la aplicación.xaml.vb, este archivo tiene muchas formas de ayudar a thems, storyborads y otras cosas, necesitas algo así en este archivo. funciona para mí, espero que para usted

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 
Cuestiones relacionadas