2012-04-10 37 views
0

我正在創建設計師,用戶可以將控件拖放到表面。 工具欄中的某些控件可能包含損壞的邏輯並生成異常。 當用戶拖拽到物體表面時,我有未處理的異常。如何在wpf中禁止UI異常?

我想壓制像混合或Visual Studio這個UI異常,並顯示消息:

workArea.Dispatcher.UnhandledException += MainContainerDispatcherUnhandledException 

我可以緩存這個例外是這樣的:

protected void MainContainerDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) 
     { 

     } 

我應該怎麼做,以取消此消息?從UI中刪除所有控件並顯示標籤?或者我可以設置一些屬性,以便WPF將忽略此異常?對此有何評論?

謝謝。

回答

1

可以使AppDomain.UnhandledException使用,如果你收到它,識別,使得它發生的控制,並

  • 或顯示給用戶的用戶友好的消息
  • 或顯示一些紅色的表面(或多或少像VS一樣)
  • 或使用的裝飾器與animaniton(冷,但更多的程序)

希望這有助於。

+0

但是當控件已經有異常。我怎麼能把它留在表面上?也許例外會再次上升?我怎樣才能抑制一個控件的異常並用紅色信息顯示裝飾者? – Evgeny 2012-04-10 07:00:01

+1

@Evgeny:我的意思是不要畫一個*控件*,但有一些表面。嘗試在VS設計器中進行一些控制崩潰:您會在控件*假定的位置看到一個帶有紅色十字的白色矩形。 – Tigran 2012-04-10 07:03:15

+0

我明白了。但Dispatcher.UnhandledException和AppDomain.UnhandledException不包含屬性來確定哪個控件導致異常的問題。或者至少我找不到它。 – Evgeny 2012-04-10 14:36:00