2009-04-26 37 views
10

我想設置我的WPF應用程序,以便當異常未處理時,彈出一個錯誤對話框。在良好的醇」的WinForms,這是通過添加WPF自定義錯誤處理對話框?

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

爲了您的Program.cs文件,然後顯示在你的事件處理代碼想任何對話。在WPF中,我試圖用

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

然而,當我在我的錯誤處理自定義窗口上使用展(),應用程序立即轉到「blahblah.exe已停止工作......」並關閉。如果我使用ShowDialog(),該窗口在關閉之前一直可用,然後同樣的「...已停止工作...」對話框彈出並消失。

在WinForms中,似乎關閉任何錯誤對話框都將允許應用程序繼續運行,具體取決於異常的嚴重程度。我似乎無法弄清楚如何在WPF中正確執行此操作。

任何想法?

回答

7

您需要在EventArgs中將Handled設置爲true。

0

在Aplication.xaml.vb中,這個文件有很多方法來幫助他們,storyborads和其他東西,你需要在這個文件中類似的東西。適合我,希望對你有所幫助

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