Где диалог выбора файлов в WPF? - PullRequest
43 голосов
/ 23 октября 2011

http://i.minus.com/i3xuoWZkpfxHn.png

Я не вижу ничего, что позволило бы мне выбирать файлы с моего компьютера ... должен быть один, где он?Возможно, мне не хватает ссылки?


Редактировать: Я имел в виду текстовое поле с кнопкой "Обзор" рядом с ним.Теперь мне приходит в голову, что мне, вероятно, придется самостоятельно разместить текстовое поле и кнопку обзора и добавить событие нажатия кнопки, чтобы открыть диалоговое окно ...

Ответы [ 3 ]

52 голосов
/ 23 октября 2011

Нет встроенного элемента управления, в котором есть текстовое поле с кнопкой [Обзор] рядом с ним. Ты должен сам это настроить.

Для самого диалога «открыть файл» в пространстве имен Microsoft.Win32 .

есть OpenFileDialog.
24 голосов
/ 06 ноября 2014

Для получения более полного ответа, предположим, что у вас есть кнопка BtnFileOpen и текстовое поле TxtFile. Сначала вам нужно сослаться на сборку System.Windows.Forms из диалогового окна ссылок (убедитесь, что вы отметили ее, дважды щелкнув по ней, кажется, не добавив ее для меня).

Внутри события нажатия кнопки:

private void BtnFileOpen_Click(object sender, RoutedEventArgs e)
{
    var fileDialog = new System.Windows.Forms.OpenFileDialog();
    var result = fileDialog.ShowDialog();
    switch (result)
    {
        case System.Windows.Forms.DialogResult.OK:
            var file = fileDialog.FileName;
            TxtFile.Text = file;
            TxtFile.ToolTip = file;
            break;
        case System.Windows.Forms.DialogResult.Cancel:
        default:
            TxtFile.Text = null;
            TxtFile.ToolTip = null;
            break;
    }
}

Если вы отключили текстовое поле, вы можете отредактировать xaml, включив в него

ToolTipService.ShowOnDisabled="True"

5 голосов
/ 23 октября 2011

Обычно я просто использую OpenFileDialog в пространстве имен System.Windows.Forms.Я использую псевдоним, используя SWF, и затем он просто становится

SWF.OpenFileDialog o = new SWF.OpenFileDialog();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...