Открытие общего диалогового окна (WPF .NET)

В этой статье показано, как отобразить обычное системное диалоговое окно в Windows Presentation Foundation (WPF). В Windows реализованы различные типы многократно используемых диалоговых окон, которые являются общими для всех приложений, включая диалоговые окна для выбора файлов и печати.

Так как эти диалоговые окна предоставляются операционной системой, их совместно используют все работающие в ней приложения. Эти диалоговые окна обеспечивают согласованное взаимодействие с пользователем и называются общими диалоговыми окнами. Так как пользователь использует общее диалоговое окно в одном приложении, ему не нужно учиться использовать это диалоговое окно в других приложениях.

Окно сообщения — это еще один вид общего диалогового окна. Дополнительные сведения см. в разделе Открытие окна сообщения.

Диалоговое окно "Открыть файл"

Диалоговое окно открытия файлов используется функцией открытия файла для получения имени открываемого файла.

An Open dialog box showing the location to retrieve the file shown from a WPF application.

Общее диалоговое окно открытия файла реализуется как класс OpenFileDialog и находится в пространстве имен Microsoft.Win32. В следующем коде показано, как создать, настроить и отобразить диалоговое окно.

// Configure open file dialog box
var dialog = new Microsoft.Win32.OpenFileDialog();
dialog.FileName = "Document"; // Default file name
dialog.DefaultExt = ".txt"; // Default file extension
dialog.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension

// Show open file dialog box
bool? result = dialog.ShowDialog();

// Process open file dialog box results
if (result == true)
{
    // Open document
    string filename = dialog.FileName;
}
' Configure open file dialog box
Dim dialog As New Microsoft.Win32.OpenFileDialog()
dialog.FileName = "Document" ' Default file name
dialog.DefaultExt = ".txt" ' Default file extension
dialog.Filter = "Text documents (.txt)|*.txt" ' Filter files by extension

' Show open file dialog box
Dim result As Boolean? = dialog.ShowDialog()

' Process open file dialog box results
If result = True Then
    ' Open document
    Dim filename As String = dialog.FileName
End If

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

диалоговое окно сохранения файлов

Диалоговое окно сохранения файлов используется функцией сохранения файла для получения имени сохраняемого файла.

A Save As dialog box showing the location to save the file shown from a WPF application.

Общее диалоговое окно сохранения файла реализуется как класс SaveFileDialog и находится в пространстве имен Microsoft.Win32. В следующем коде показано, как создать, настроить и отобразить диалоговое окно.

// Configure save file dialog box
var dialog = new Microsoft.Win32.SaveFileDialog();
dialog.FileName = "Document"; // Default file name
dialog.DefaultExt = ".txt"; // Default file extension
dialog.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension

// Show save file dialog box
bool? result = dialog.ShowDialog();

// Process save file dialog box results
if (result == true)
{
    // Save document
    string filename = dialog.FileName;
}
' Configure save file dialog box
Dim dialog As New Microsoft.Win32.SaveFileDialog()
dialog.FileName = "Document" ' Default file name
dialog.DefaultExt = ".txt" ' Default file extension
dialog.Filter = "Text documents (.txt)|*.txt" ' Filter files by extension

' Show save file dialog box
Dim result As Boolean? = dialog.ShowDialog()

' Process save file dialog box results
If result = True Then
    ' Save document
    Dim filename As String = dialog.FileName
End If

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

Диалоговое окно "Открыть папку"

Важно!

Диалоговое окно "Открыть папку" доступно в .NET 8.0 и более поздних версиях.

Диалоговое окно "Открыть папку" используется пользователем для выбора одной или нескольких папок и возврата их в программу. Например, если программа отображает сведения о папке, например объем файлов и имена файлов в папке, можно использовать диалоговое окно "Открыть папку", чтобы разрешить пользователю выбрать папку.

An Open Folder dialog box showing the Pictures folder with the Camera Roll folder selected, shown from a WPF application.

Обычное диалоговое окно открытой папки реализуется как OpenFolderDialog класс и находится в Microsoft.Win32 пространстве имен. В следующем коде показано, как создать, настроить и отобразить диалоговое окно.

// Configure open folder dialog box
Microsoft.Win32.OpenFolderDialog dialog = new();

dialog.Multiselect = false;
dialog.Title = "Select a folder";

// Show open folder dialog box
bool? result = dialog.ShowDialog();

// Process open folder dialog box results
if (result == true)
{
    // Get the selected folder
    string fullPathToFolder = dialog.FolderName;
    string folderNameOnly = dialog.SafeFolderName;
}
' Configure open folder dialog box
Dim dialog As New Microsoft.Win32.OpenFolderDialog()

dialog.Multiselect = True
dialog.Title = "Select a folder"

' Show open folder dialog box
Dim result As Boolean? = dialog.ShowDialog()

' Process open folder dialog box results
If result = True Then

    ' Get multiple folder names
    For index = 0 To dialog.FolderNames.Length
        ' Get the selected folder
        Dim fullPathToFolder As String = dialog.FolderNames(index)
        Dim folderNameOnly As String = dialog.SafeFolderNames(index)
    Next

End If

Дополнительные сведения о диалоговом окне открытия папки см. в разделе Microsoft.Win32.OpenFolderDialog.

Диалоговое окно печати используется функцией печати для выбора и настройки принтера, на котором пользователь хочет печатать данные.

A print dialog box shown from a WPF application.

Общее диалоговое окно печати реализуется как класс PrintDialog и находится в пространстве имен System.Windows.Controls. Следующий код показывает, как создавать, настраивать и отображать такое окно.

// Configure printer dialog box
var dialog = new System.Windows.Controls.PrintDialog();
dialog.PageRangeSelection = System.Windows.Controls.PageRangeSelection.AllPages;
dialog.UserPageRangeEnabled = true;

// Show save file dialog box
bool? result = dialog.ShowDialog();

// Process save file dialog box results
if (result == true)
{
    // Document was printed
}
' Configure printer dialog box
Dim dialog As New System.Windows.Controls.PrintDialog()
dialog.PageRangeSelection = System.Windows.Controls.PageRangeSelection.AllPages
dialog.UserPageRangeEnabled = True

' Show save file dialog box
Dim result As Boolean? = dialog.ShowDialog()

' Process save file dialog box results
If result = True Then
    ' Document was printed
End If

Дополнительные сведения о диалоговом окне печати см. в статье System.Windows.Controls.PrintDialog. Подробное описание печати в WPF см. в разделе Общие сведения о печати.

См. также