2010-09-30 32 views

Trả lời

330

Tương đương WPF sẽ là System.Windows.MessageBox. Nó có một giao diện khá giống nhau, nhưng sử dụng các liệt kê khác cho các tham số và giá trị trả về.

+14

Phiên bản WPF thiếu Retry, Ignore và Hủy bỏ nút kết hợp mặc dù. Những cái duy nhất có sẵn là Ok và Cancel. – Mehrad

7

Như người kia nói, có một trong không gian tên WPF (System.Windows).

Vấn đề là nó là cùng một hộp thư cũ với OK/Hủy bỏ vv. Vista/Win7 đã chuyển sang sử dụng Hộp thoại tác vụ thay thế.

Rất tiếc, không có giao diện chuẩn dễ dàng cho hộp thoại tác vụ. Tôi sử dụng this one

9

Hộp thư trong Bộ công cụ mở rộng WPF rất đẹp. It's tại Microsoft.Windows.Controls.MessageBox sau khi tham khảo các bộ công cụ DLL. Tất nhiên điều này đã được phát hành ngày 9 tháng 8 năm 2011 vì vậy nó sẽ không có được một lựa chọn cho bạn ban đầu. Nó có thể được tìm thấy tại Codeplex cho tất cả mọi người ra có nhìn xung quanh.

166

bạn có thể sử dụng

MessageBoxResult result = MessageBox.Show("Do you want to close this window?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question); 
if (result == MessageBoxResult.Yes) 
{ 
    Application.Current.Shutdown(); 
} 

để biết thêm thông tin chuyến thăm http://www.c-sharpcorner.com/uploadfile/mahesh/messagebox-in-wpf/

+0

... và giống như trong các câu trả lời khác, không gian tên ở đây sẽ là "System.Windows" như trái ngược với "System.Windows.Forms" – Viking

11

WPF chứa MessageBox sau:

if (MessageBox.Show("Do you want to Save?", "Confirm", 
    MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) 
{ 

} 
1

Có lẽ mã cô dưới đây giúp

using Windows.UI.Popups; 
namespace something.MyViewModels 
{ 
    public class TestViewModel 
    { 
     public void aRandonMethode() 
     { 
      MyMessageBox("aRandomMessage"); 
     } 

     public async void MyMessageBox(string mytext) 
     { 
      var dialog = new MessageDialog(mytext); await dialog.ShowAsync(); 
     } 
    } 
} 
1

Trong WPF có vẻ như mã này:

System.Windows.Forms.MessageBox.Show("Test"); 

được thay thế bằng:

System.Windows.MessageBox.Show("Test"); 
Các vấn đề liên quan