在WPF中避免使用MessageBox的歧义

时间:2013-03-04 19:49:05

标签: c# wpf winforms messagebox

我最近遇到过这个问题。我经常使用WPF / C#编写程序,并希望使用OpenFileDialog或其他需要System.Windows.Forms的类。我也经常使用MessageBoxes(当添加Forms时,它们在两个库之间变得暧昧)。

我添加了引用,但是(即使使用快捷方式)我必须使用F.MessageBox.Show()之类的东西。有没有办法在我需要时暂时使用System.Windows.Forms引用或其他可以让我保持MessageBox.Show()完整的内容?

3 个答案:

答案 0 :(得分:3)

Microsoft将许多Windows对话框移动到Microsoft.Win32命名空间,因此您无需添加对所有System.Windows.Forms的引用。

答案 1 :(得分:2)

您可以在需要WinForms MessageBox的文件上放置以下using指令:

using MessageBox = System.Windows.Forms.MessageBox;

这将解决模棱两可的问题

答案 2 :(得分:0)

我建议你使用wpf提供的等价物。这是System.Windows.MessageBox。它几乎看起来像windows窗体中的那个,但参数和返回值可能不同。下面是一个示例来说明它的使用。

var res = MessageBox.Show("Shutdown now ?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (res== MessageBoxResult.Yes)
{
    Application.Current.Shutdown();
}