我最近经常遇到这个问题。我经常使用 WPF/C# 编写程序,并希望使用OpenFileDialog
需要System.Windows.Forms
. 我也经常使用 MessageBoxes(当添加 Forms 时,它们在两个库之间变得模棱两可)。
我添加了引用,但是(即使使用快捷方式)我必须使用类似F.MessageBox.Show()
. 有没有办法System.Windows.Forms
在我需要时临时使用参考或其他可以让我保持MessageBox.Show()
完整的方法?
我最近经常遇到这个问题。我经常使用 WPF/C# 编写程序,并希望使用OpenFileDialog
需要System.Windows.Forms
. 我也经常使用 MessageBoxes(当添加 Forms 时,它们在两个库之间变得模棱两可)。
我添加了引用,但是(即使使用快捷方式)我必须使用类似F.MessageBox.Show()
. 有没有办法System.Windows.Forms
在我需要时临时使用参考或其他可以让我保持MessageBox.Show()
完整的方法?
Microsoft 将许多 Windows 对话框移至 Microsoft.Win32 命名空间,因此您无需添加对所有 System.Windows.Forms 的引用。
您可以将以下 using 指令放在需要 WinForms MessageBox 的文件之上:
using MessageBox = System.Windows.Forms.MessageBox;
这将解决歧义
我建议您使用 wpf 提供的等价物。这是 System.Windows.MessageBox。它几乎看起来像 windows 窗体中的那个,但是参数和返回值可能不同。下面是一个示例来说明它的使用。
var res = MessageBox.Show("Shutdown now ?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (res== MessageBoxResult.Yes)
{
Application.Current.Shutdown();
}