1

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

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

4

3 回答 3

3

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

于 2013-03-04T19:52:59.130 回答
2

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

using MessageBox = System.Windows.Forms.MessageBox;

这将解决歧义

于 2013-03-04T19:52:48.490 回答
0

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

var res = MessageBox.Show("Shutdown now ?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (res== MessageBoxResult.Yes)
{
    Application.Current.Shutdown();
}
于 2013-03-04T19:57:39.503 回答