我需要在我的WPF应用程序中使用FolderBrowser
来选择包含图像的文件夹。我确实知道System.Windows.Forms
版本,但它使MessageBox
含糊不清,这使得向用户显示其他消息变得很困难。是否有不同的方法来执行此操作或我应该使用自定义控件。或者有没有办法克服模棱两可的错误?
答案 0 :(得分:3)
只需将表单导入为:
using Forms = System.Windows.Forms;
然后,当您想要创建“文件夹”对话框时,您可以编写:
Forms.FolderBrowserDialog dlg = new Forms.FolderBrowserDialog();
这应该摆脱歧义。
答案 1 :(得分:0)
WinForms的MessageBox位于不同的命名空间中。因此,如果源代码文件开头的两个名称空间(using
表单和System.Windows.Forms
表示WPF)都有Systems.Windows
,则必须在访问类时提供完整的名称空间两个名称空间中的名称相同。
using System.Windows;
using System.Windows.Forms;
[...]
public void MyFunction()
{
System.Windows.Forms.MessageBox.Show("Hello, World!");
}
答案 2 :(得分:0)
由于模糊错误发生是因为2个或更多的东西具有相同的名称和签名,所以在调用MessageBox来解决它时,您只需要更具体。
blah.blah.MessageBox("message");
而不是
MessageBox("message");
答案 3 :(得分:0)
不要将System.Windows.Forms
放在using
中,这样可以避免含糊不清MessageBox
。
public bool SelectDirectory(out String directoryName)
{
System.Windows.Forms.FolderBrowserDialog dlg = new System.Windows.Forms.FolderBrowserDialog();
directoryName = String.Empty;
dlg.SelectedPath = String.Empty;
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
directoryName = dlg.SelectedPath;
return true;
}
else
{
return false;
}
}
只需包含此方法,然后在其他位置继续使用WPF。