我需要FolderBrowser
在我的 WPF 应用程序中使用 a 来选择包含图像的文件夹。我确实知道该System.Windows.Forms
版本,但它变得MessageBox
模棱两可,这使得向我的用户显示其他消息变得困难。有没有不同的方法可以做到这一点,或者我应该使用自定义控件。或者有没有办法克服模棱两可的错误?
问问题
86 次
4 回答
3
只需将表单导入为:
using Forms = System.Windows.Forms;
然后,当您想创建一个文件夹对话框时,您可以编写:
Forms.FolderBrowserDialog dlg = new Forms.FolderBrowserDialog();
这应该消除歧义。
于 2013-10-23T11:32:09.180 回答
0
WinForms 的 MessageBox 位于不同的命名空间中。因此,如果您在源代码文件的开头有using
两个名称空间(System.Windows.Forms
用于 Forms 和WPF),则在访问两个名称空间中具有相同名称的类时,您必须提供完整的名称空间。Systems.Windows
using System.Windows;
using System.Windows.Forms;
[...]
public void MyFunction()
{
System.Windows.Forms.MessageBox.Show("Hello, World!");
}
于 2013-10-23T11:32:31.730 回答
0
由于两个或更多事物具有相同的名称和签名,因此会发生模棱两可的错误,因此您只需在调用 MessageBox 时更加具体即可绕过它。
blah.blah.MessageBox("message");
代替
MessageBox("message");
于 2013-10-23T11:32:36.493 回答
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。
于 2013-10-23T11:32:46.663 回答