实现文件夹浏览器

时间:2013-10-23 11:25:43

标签: c# wpf

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

4 个答案:

答案 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。