如何開啟通用對話方塊 (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 中列印的詳細討論,請參閱列印概觀。