2017-10-13 61 views
1

嘿,我有我的錯誤處理問題。基本上我試圖顯示一個彈出窗口,允許用戶在發生未處理的異常時輸入他們執行的任何步驟。如果我把它寫成一個常規的c#彈出窗口,我可以做得很好,但如果我在xaml中創建彈出窗口,情況並非如此。如果我在xaml中創建它,我得到一個
「我們的應用程序已進入休息狀態,但沒有代碼顯示,因爲所有線程正在執行外部代碼」消息並關閉應用程序。Xaml未處理的異常彈出不出現

現在,如果我將彈出窗口添加到onclick事件中,它會正確顯示。

AppDomain currentDomain = AppDomain.CurrentDomain; 
     currentDomain.UnhandledException += new 
UnhandledExceptionEventHandler(ShowExceptionPopUp); 

而顯示ExceoptionPopUp方法

ErrorPopup error = new ErrorPopup(sender, e); 

而ErrorPop類

InitializeComponent(); 
     this.errorSender = errorSender; 
     this.eventArgs = eventArgs; 

如果我步驟通過它完成上的InitializeComponent()的內部。我想知道有人能爲我解釋這個問題嗎?

非常感謝。

+0

是否有任何理由讓您在XAML中完成這項工作?我會做這樣的事情是背後的代碼。 –

+0

保持樣式和編碼一致是主要原因.........否則,我會做一個正常的C#彈出 – Seamy

+0

當涉及到彈出窗口等,我想完全控制,這是很難在XAML。因此,爲什麼我會把它放在代碼後面。它更容易在代碼背後進行調整和擴展。我將創建一個'Window'控件,它接受輸入以顯示消息,並將其作爲來自代碼隱藏的對話框打開。我知道我沒有幫助你的答案,但如果你只是爲了美學和一致性而試圖在XAML中做所有事情,那麼你可能會過度地解決你的問題。 –

回答

0

嘿所以我固定在最後。問題是資源是多線程的,一個xaml ui只能是單線程的。痛苦地修復,但一切都很好。感謝您的幫助

相關問題