0

我需要FolderBrowser在我的 WPF 应用程序中使用 a 来选择包含图像的文件夹。我确实知道该System.Windows.Forms版本,但它变得MessageBox模棱两可,这使得向我的用户显示其他消息变得困难。有没有不同的方法可以做到这一点,或者我应该使用自定义控件。或者有没有办法克服模棱两可的错误?

4

4 回答 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.Formsusing以免产生歧义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 回答