2009-04-26 16 views
10

Ich versuche, meine WPF-Anwendung so einzurichten, dass wenn eine Ausnahme nicht behandelt wird, ein Fehlerdialogfeld angezeigt wird. In good ol‘WinForms war möglich, dies durchWPF benutzerdefinierte Fehlerbehandlung Dialogfeld?

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

Um Ihre Program.cs Datei und dann, was zeigt Dialog Sie im Event-Handling-Code gesucht. In WPF habe ich versucht,

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

jedoch zu verwenden, wenn ich zeigen() verwenden, auf meine Fehlerbehandlungs benutzerdefinierten Fenster, geht die Anwendung sofort auf „blahblah.exe funktioniert nicht mehr ...“ und schließt. Wenn ich ShowDialog() verwende, ist das Fenster verwendbar, bis es geschlossen wird und dann das gleiche "... hat aufgehört zu arbeiten ..." Dialog erscheint und stirbt.

In WinForms scheint es so zu sein, dass beim Schließen eines Fehlerdialogs die App weiter ausgeführt werden könnte, je nachdem, wie groß die Ausnahme war. Ich kann nicht herausfinden, wie man das in WPF richtig macht.

Irgendwelche Ideen?

Antwort

7

Sie müssen Handled in den EventArgs auf true setzen.

0

In der Datei "Aplication.xaml.vb" hat diese Datei viele Möglichkeiten, um Themes, Storyborads und anderen Dingen zu helfen. Sie benötigten so etwas in dieser Datei. funktioniert für mich, ich hoffe es für Sie zu

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 
Verwandte Themen