在WPF中是否有一个标准的消息框,如WinForms的System.Windows.Forms.MessageBox.Show(),或者我应该使用WinForms消息框?


当前回答

在WPF中,这段代码,

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

替换为:

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

其他回答

WPF扩展工具包中的MessageBox非常好。它在Microsoft.Windows.Controls.MessageBox中,在引用工具箱DLL之后。当然,这是2011年8月9日发布的,所以它本来就不是你的选择。每个人都可以在Github上找到它。

WPF中与WinForms的MessageBox等价的是System.Windows.MessageBox。

你可以用这个:

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

欲了解更多信息,请访问WPF中的MessageBox。

正如其他人所说,在WPF命名空间(System.Windows)中有一个MessageBox。

问题是,它是相同的旧消息框与确定,取消等。Windows Vista和Windows 7转而使用任务对话框。

不幸的是,任务对话框没有简单的标准界面。我使用来自CodeProject KB的实现。

也许下面的代码会有所帮助:

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();
        }
    }
}