WPF中的MessageBox功能

时间:2015-09-14 20:34:52

标签: c# wpf winforms messagebox

我正在尝试创建一个出现在程序开头的MessageBox,询问用户是否要加载文件。到目前为止,我有:

public static void LoadFile(object sender, FormClosingEventArgs e)
{
    System.Windows.MessageBox.Show("Would you like to load a file?",
    System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxQuestion);

    if (result == DialogResult.No)
    {
        // cancel the closure of the form.
        e.Cancel = true;
    }
}

我意识到有些代码用于退出程序。我不打算这样做,它目前仍然留在我尝试的示例代码中。当我尝试这个代码时,我收到了几个错误,主要的错误涉及MessageBoxQuestion。错误读取

  

名称空间System.Windows中不存在类型或命名空间名称'MessageBoxQuestion'

我之前在MessageBoxButtons上遇到此错误,但通过将其更改为MessageBoxButton来修复此问题。从一个简单的消息框开始,我最初有代码:

public static void LoadFile()
{
    System.Windows.MessageBox.Show("Text");
}

尽管我必须添加System.Windows.以删除错误

,但此操作完全正常
  

当前上下文中不存在名称MessageBox。

有没有人知道如何让MessageBox正常工作?

2 个答案:

答案 0 :(得分:2)

MessageBox的WPF版本与Windows Forms版本不同。您需要使用this重载。

答案 1 :(得分:0)

这是我最终提出的:

public static void LoadFile()
    {
        // Configure message box 
        string message = "Would you like to load a file?";
        string caption = "Startup";
        System.Windows.MessageBoxButton buttons = System.Windows.MessageBoxButton.YesNo;
        System.Windows.MessageBoxImage icon = System.Windows.MessageBoxImage.Information;
        // Show message box
        System.Windows.MessageBoxResult result = 
           System.Windows.MessageBox.Show(message, caption, buttons, icon);
        if(result == System.Windows.MessageBoxResult.Yes)
        {

        }
        else if(result == System.Windows.MessageBoxResult.No)
        {

        }
   }

我包含了我计划稍后使用的if else分支。