2009-04-26 32 views
10

Tôi đang cố gắng thiết lập ứng dụng WPF của mình để khi ngoại lệ không được giải quyết, hộp thoại báo lỗi sẽ xuất hiện. Trong winForms tốt, bạn có thể thực hiện điều này bằng cách thêmHộp thoại xử lý lỗi tùy chỉnh WPF?

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

vào tệp Program.cs của bạn và sau đó hiển thị bất kỳ hộp thoại nào bạn muốn trong mã xử lý sự kiện. Trong WPF Tôi đã cố gắng sử dụng

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

Tuy nhiên, khi tôi sử dụng Show() trên cửa sổ tùy chỉnh lỗi xử lý của tôi, việc áp dụng ngay lập tức đi vào "blahblah.exe đã ngừng làm việc ..." và đóng cửa. Nếu tôi sử dụng ShowDialog(), cửa sổ có thể sử dụng cho đến khi nó đóng lại và sau đó hộp thoại "... đã ngừng hoạt động ..." bật lên và chết.

Trong WinForms, có vẻ như đóng bất kỳ hộp thoại báo lỗi nào sẽ cho phép ứng dụng tiếp tục chạy, tùy thuộc vào mức độ nghiêm trọng của ngoại lệ. Tôi không thể có vẻ để tìm ra cách để làm điều này đúng trong WPF.

Bất kỳ ý tưởng nào?

Trả lời

7

Bạn cần đặt Handled thành true trong EventArgs.

0

Trong tệp Aplication.xaml.vb, tệp này có nhiều cách để trợ giúp cho chúng, bảng câu chuyện và các nội dung khác, bạn đã neeed một cái gì đó như thế trong tệp này. làm việc cho tôi, hy vọng như vậy cho bạn

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 
Các vấn đề liên quan