Открытие общего диалогового окна (WPF .NET)
В этой статье показано, как отобразить обычное системное диалоговое окно в Windows Presentation Foundation (WPF). В Windows реализованы различные типы многократно используемых диалоговых окон, которые являются общими для всех приложений, включая диалоговые окна для выбора файлов и печати.
Так как эти диалоговые окна предоставляются операционной системой, их совместно используют все работающие в ней приложения. Эти диалоговые окна обеспечивают согласованное взаимодействие с пользователем и называются общими диалоговыми окнами. Так как пользователь использует общее диалоговое окно в одном приложении, ему не нужно учиться использовать это диалоговое окно в других приложениях.
Окно сообщения — это еще один вид общего диалогового окна. Дополнительные сведения см. в разделе Открытие окна сообщения.
Диалоговое окно "Открыть файл"
Диалоговое окно открытия файлов используется функцией открытия файла для получения имени открываемого файла.
Общее диалоговое окно открытия файла реализуется как класс 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.
диалоговое окно сохранения файлов
Диалоговое окно сохранения файлов используется функцией сохранения файла для получения имени сохраняемого файла.
Общее диалоговое окно сохранения файла реализуется как класс 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 и более поздних версиях.
Диалоговое окно "Открыть папку" используется пользователем для выбора одной или нескольких папок и возврата их в программу. Например, если программа отображает сведения о папке, например объем файлов и имена файлов в папке, можно использовать диалоговое окно "Открыть папку", чтобы разрешить пользователю выбрать папку.
Обычное диалоговое окно открытой папки реализуется как 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.
Печать - диалоговое окно
Диалоговое окно печати используется функцией печати для выбора и настройки принтера, на котором пользователь хочет печатать данные.
Общее диалоговое окно печати реализуется как класс 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 см. в разделе Общие сведения о печати.
См. также
.NET Desktop feedback