Cómo abrir un cuadro de diálogo común (WPF .NET)

En este artículo se muestra cómo puede mostrar un cuadro de diálogo del sistema común en Windows Presentation Foundation (WPF). Windows implementa diferentes tipos de cuadros de diálogo reutilizables que son comunes a todas las aplicaciones, incluidos los cuadros de diálogo para seleccionar archivos e imprimir.

Dado que el sistema operativo proporciona estos cuadros de diálogo, se comparten entre todas las aplicaciones que se ejecutan en el sistema operativo. Estos cuadros de diálogo proporcionan una experiencia de usuario coherente y se conocen como cuadros de diálogo comunes. Como un usuario usa un cuadro de diálogo común en una aplicación, no necesita aprender a usar ese cuadro de diálogo en otras aplicaciones.

Un cuadro de mensaje es otro cuadro de diálogo común. Para obtener más información, consulte Cómo abrir un cuadro de mensaje.

Abrir archivo (cuadro de diálogo)

La funcionalidad para abrir archivos usa el cuadro de diálogo para abrir archivos para recuperar el nombre de un archivo que se va a abrir.

Cuadro de diálogo Abrir que muestra la ubicación para recuperar el archivo que se muestra desde una aplicación WPF.

El cuadro de diálogo común para abrir un archivo se implementa como la clase OpenFileDialog y se encuentra en el espacio de nombres Microsoft.Win32. En el siguiente código se muestra cómo crear, configurar y mostrar el cuadro de diálogo.

// 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

Para obtener más información sobre el cuadro de diálogo para abrir archivos, vea Microsoft.Win32.OpenFileDialog.

Guardar archivo (cuadro de diálogo)

La funcionalidad de guardado de archivos usa el cuadro de diálogo para guardar archivos para recuperar el nombre de un archivo que se va a guardar.

Cuadro de diálogo Guardar como que muestra la ubicación para guardar el archivo que se muestra desde una aplicación WPF.

El cuadro de diálogo común para guardar archivos se implementa como la clase SaveFileDialog y se encuentra en el espacio de nombres Microsoft.Win32. En el siguiente código se muestra cómo crear, configurar y mostrar el cuadro de diálogo.

// 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

Para obtener más información sobre el cuadro de diálogo Guardar archivo, vea Microsoft.Win32.SaveFileDialog.

Cuadro de diálogo Abrir carpeta

Importante

El cuadro de diálogo Abrir carpeta está disponible en .NET 8.0 y versiones posteriores.

El usuario usa el cuadro de diálogo Abrir carpeta para seleccionar una o varias carpetas y devolverlas al programa. Por ejemplo, si el programa muestra información sobre una carpeta, como la cantidad de archivos y los nombres de archivo de la carpeta, puedes usar el cuadro de diálogo Abrir carpeta para permitir al usuario elegir la carpeta.

Un cuadro de diálogo Abrir carpeta en el que se muestra la carpeta Imágenes con la carpeta Álbum de cámara seleccionada, que se muestra en una aplicación WPF.

El cuadro de diálogo común Abrir carpeta se implementa como la clase OpenFolderDialog y se encuentra en el espacio de nombres Microsoft.Win32. En el siguiente código se muestra cómo crear, configurar y mostrar el cuadro de diálogo.

// 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

Para obtener más información sobre el cuadro de diálogo Abrir carpeta, consulta Microsoft.Win32.OpenFolderDialog.

La funcionalidad de impresión usa el cuadro de diálogo de impresión para elegir y configurar la impresora en la que un usuario desea imprimir datos.

Cuadro de diálogo de impresión que se muestra desde una aplicación WPF.

El cuadro de diálogo común de impresión se implementa como la clase PrintDialog y se encuentra en el espacio de nombres System.Windows.Controls. En el siguiente código se muestra cómo crear, configurar y mostrar uno.

// 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

Para obtener más información sobre el cuadro de diálogo de impresión, vea System.Windows.Controls.PrintDialog. Para obtener información detallada sobre la impresión en WPF, vea Información general sobre impresión.

Vea también