2012-04-25 32 views
135

Tengo un TextBox llamado textbox1 y un Button llamado button1. Cuando hago clic en button1 quiero navegar por mis archivos para buscar solo archivos de imagen (escriba jpg, png, bmp ...). Y cuando selecciono un archivo de imagen y haga clic en OK en la ventana de archivos Quiero que el directorio de archivos a ser escrito en el textbox1.text así:Abrir el cuadro de diálogo de archivo y seleccionar un archivo usando controles WPF y C#

textbox1.Text = "C:\myfolder\myimage.jpg" 

Respuesta

333

Algo así debe ser lo que necesita

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    // Create OpenFileDialog 
    Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); 



    // Set filter for file extension and default file extension 
    dlg.DefaultExt = ".png"; 
    dlg.Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif"; 


    // Display OpenFileDialog by calling ShowDialog method 
    Nullable<bool> result = dlg.ShowDialog(); 


    // Get the selected file name and display in a TextBox 
    if (result == true) 
    { 
     // Open document 
     string filename = dlg.FileName; 
     textBox1.Text = filename; 
    } 
} 
+11

if (result.HasValue && result.Value) en lugar de if (resultado == verdadero) – eflles

+2

@efles cuál es el valor que su forma proporciona sobre el código de muestra oficial en http://msdn.microsoft.com/en- us/library/microsoft.win32.openfiledialog.aspx? –

+3

@eflles La muestra es técnicamente correcta. Desde http://msdn.microsoft.com/en-us/library/2cf62fcy.aspx: * Cuando realiza comparaciones con tipos anulables, si el valor de uno de los tipos anulables es nulo y el otro no, todas las comparaciones evalúan a falso excepto por! = (no igual). * Sin embargo, supongo que podría argumentarse si se trata de una explotación de este tecnicismo (personalmente creo que está bien en este caso). –

16
var ofd = new Microsoft.Win32.OpenFileDialog() {Filter = "JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif"}; 
var result = ofd.ShowDialog(); 
if (result == false) return; 
textBox1.Text = ofd.FileName; 
Cuestiones relacionadas