2009-04-26 21 views
10

Sto provando a configurare la mia applicazione WPF in modo che quando un'eccezione non viene gestita, viene visualizzata una finestra di errore. In buon ol' WinForms questo è stato possibile con l'aggiunta diFinestra di dialogo per la gestione degli errori personalizzata WPF?

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

Per il file Program.cs e poi mostrando qualunque finestra di dialogo che si voleva nel codice di gestione degli eventi. In WPF ho cercato di utilizzare

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

Tuttavia, quando uso Show() sulla mia finestra personalizzata di gestione degli errori, l'applicazione va subito al "blahblah.exe ha smesso di funzionare ..." e si chiude. Se uso ShowDialog(), la finestra è utilizzabile fino a quando non viene chiusa e quindi la stessa finestra di dialogo "... ha smesso di funzionare ..." si apre e muore.

In WinForms, sembra che chiudere qualsiasi finestra di dialogo di errore consentirebbe all'app di continuare a funzionare, a seconda di quanto grave fosse l'eccezione. Non riesco a capire come farlo correttamente in WPF.

Qualche idea?

risposta

7

È necessario impostare Gestito su true in EventArgs.

0

In Aplication.xaml.vb, questo file ha molti modi per aiutare a se stesso, a storyborad e ad altri elementi, è necessario qualcosa del genere in questo file. lavora per me, spero che tu lo faccia al

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 
Problemi correlati