2012-05-15 15 views
6

Tôi đang cố gắng hiển thị MessageBox tiêu chuẩn như một cửa sổ phương thức trong ứng dụng của tôi, nhưng nó kết thúc như là không phương thức. Trong cuộc gọi đầu tiên, trong đoạn mã dưới đây tôi sẽ hiển thị một MessageBox tiêu chuẩn được hiển thị theo kiểu, như nó cần. Trong cuộc gọi thứ hai, nó không được hiển thị như là phương thức, ngay cả khi tôi lấy điều phối cửa sổ chính.Modal MessageBox trong ứng dụng WPF

Dispatcher disp = Application.Current.MainWindow.Dispatcher; 
//First call, shown MODAL 
if (this.messageService.ShowYesNo("Do you want to update the Word document, this will regenerate inspectiondata for document", "") == MessageBoxResult.Yes) 
{ 
    using (new WaitCursor()) 
    { 
     _eventAggregator.GetEvent<ProgressBarRequestShow>().Publish(""); 
     worker = new BackgroundWorker(); 

     worker.DoWork += delegate(object s, DoWorkEventArgs args) 
     { 
      AITUpdateProgressDelegate update = new AITUpdateProgressDelegate(UpdateProgress); 
      this.docService.UpdateWorddocument(this.docService.GetCurrentDocumentFilePath, update); 
     }; 

     worker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args) 
     { 
      try 
      { 
       // Second call NOT MODAL 
       disp.Invoke((Action)delegate() 
       { 
        this.messageService.ShowInformation("Document generated, choose Open in Word in main toolbar to show document", ""); 
       }); 
       _eventAggregator.GetEvent<ProgressBarRequestHide>().Publish(""); 
      } 
      finally 
      { 
      } 
     }; 
     worker.RunWorkerAsync(); 
    } 
} 
+0

tại sao bạn không sử dụng WPF Window để tạo hộp thư tùy chỉnh? –

+0

Tôi cần nghiên cứu tài liệu thêm một chút, một hộp thông tin không phải là phương thức theo mặc định, cần phải đặt chủ sở hữu – klashagelqvist

Trả lời

2

This trông giống như những gì bạn đang tìm kiếm. Cuộc gọi cho hộp tin nhắn bao gồm thông số 'chủ sở hữu'. Tôi đã sử dụng một khái niệm tương tự trong mã mà tôi đã làm trước và đã cho thấy các cửa sổ như phương thức. Mã mẫu cũng có thể được tải xuống từ liên kết.