Red de conocimiento informático - Material del sitio web - Cómo implementar la selección de carpetas en WPF

Cómo implementar la selección de carpetas en WPF

La implementación de WPF hace clic en el botón... para seleccionar una carpeta como directorio de inicio y funciona

(La imagen a continuación es mi servidor FTP y mi cargador/descargador FTP usando la parte WPF) /?Seleccionar carpeta

privada?void?btnSelectRootDirect_Click(object?sender,?RoutedEventArgs?e)

{

System.Windows.Forms FolderBrowserDialog?

new?System.Windows.Forms.FolderBrowserDialog();

/*Tenga en cuenta que el espacio de nombres delante de FolderBrowserDialog no se puede eliminar y debe introducirse manualmente aquí

Espacio System.Window.Forms. Espacio de formularios; de lo contrario, encontrará que no hay ninguna propiedad OK cuando utilice el DialogResult*/

if ?(openFileDialog.ShowDialog()? ==?System.Windows.Forms.DialogResult.OK)

{

txtFtpRoot.Text?=?openFileDialog.SelectedPath;

}

}

Nota: en wpf Introduzca manualmente la propiedad System.Windows.Forms.DialogResult.OK. La introducción manual de System.Window.Forms en wpf provocará errores por los siguientes motivos

System.Window.Forms se introduce de forma predeterminada en las aplicaciones de formulario C# Winform

Pero de forma predeterminada en wpf System .Window.Forms no se introduce; es necesario agregarlo a la referencia

Solución: en el lado derecho del proyecto--Resolve Explorer--Referencia--Clic derecho--Agregar referencia-- En Buscar en el cuadro desplegable .NET, busque System.Windows.Forms, haga clic en Aceptar, luego, el quinto elemento de la barra de menú versus generar, regenerar la solución, puede hacerlo. él.

Nota: En este momento, si el programa contiene un MessageBox, el MessageBox introducido en System.Windows.Forms informará un error (porque hay clases de MessageBox tanto en System.Windows como en System.Windows. Forma espacios de nombres, si no). Windows.Forms (el programa se confundirá si no especifica a qué espacio de nombres pertenece la clase), simplemente cámbielo a System.Windows.Forms.