Tengo un requisito en WPF/C# para hacer clic en un botón, recopilar algunos datos y luego ponerlo en un archivo de texto que el usuario puede descargar a su máquina. Puedo obtener la primera mitad de esto, pero ¿cómo se le pregunta a un usuario con un cuadro de diálogo "Guardar como"? El archivo en sí será un archivo de texto simple.¿Cómo se muestra un cuadro de diálogo Guardar como en WPF?
Respuesta
Ambas respuestas hasta ahora se vinculan a la clase SaveFileDialog
de Silverlight; el WPF variant es bastante diferente y tiene un espacio de nombres diferente.
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "Document"; // Default file name
dlg.DefaultExt = ".text"; // Default file extension
dlg.Filter = "Text documents (.txt)|*.txt"; // Filter files by extension
// Show save file dialog box
Nullable<bool> result = dlg.ShowDialog();
// Process save file dialog box results
if (result == true)
{
// Save document
string filename = dlg.FileName;
}
Utilice SaveFileDialog
class.
@ Aaron: Gracias por la pista. Corregí el enlace para hacer referencia a la clase que quise decir. –
Solo necesita crear un SaveFileDialog y llamar a su método ShowDialog.
-1 Eso es para SL; no WPF –
@ Aaron Gracias, he vinculado a la versión incorrecta. He actualizado mi respuesta para señalar la correcta ahora. – Twelve47
SaveFileDialog está en el espacio de nombres de Microsoft.Win32 - podría ahorrarle los 10 minutos que me llevó averiguarlo.
Aquí hay un código de ejemplo:
string fileText = "Your output text";
SaveFileDialog dialog = new SaveFileDialog()
{
Filter = "Text Files(*.txt)|*.txt|All(*.*)|*"
};
if (dialog.ShowDialog() == true)
{
File.WriteAllText(dialog.FileName, fileText);
}
Todos los ejemplos hasta ahora utilizan el espacio de nombres de Win32, pero no hay una alternativa:
FileInfo file = new FileInfo("image.jpg");
var dialog = new System.Windows.Forms.SaveFileDialog();
dialog.FileName = file.Name;
dialog.DefaultExt = file.Extension;
dialog.Filter = string.Format("{0} images ({1})|*{1}|All files (*.*)|*.*",
file.Extension.Substring(1).Capitalize(),
file.Extension);
dialog.InitialDirectory = file.DirectoryName;
System.Windows.Forms.DialogResult result = dialog.ShowDialog(this.GetIWin32Window());
if (result == System.Windows.Forms.DialogResult.OK)
{
}
estoy usando un método de extensión para obtener el IWin32Window
desde el control visual:
#region Get Win32 Handle from control
public static System.Windows.Forms.IWin32Window GetIWin32Window(this System.Windows.Media.Visual visual)
{
var source = System.Windows.PresentationSource.FromVisual(visual) as System.Windows.Interop.HwndSource;
System.Windows.Forms.IWin32Window win = new OldWindow(source.Handle);
return win;
}
private class OldWindow : System.Windows.Forms.IWin32Window
{
private readonly System.IntPtr _handle;
public OldWindow(System.IntPtr handle)
{
_handle = handle;
}
System.IntPtr System.Windows.Forms.IWin32Window.Handle
{
get { return _handle; }
}
}
#endregion
Capitalize()
es también un método de extensión, pero no vale la pena mencionarlo ya que hay muchos ejemplos de mayúsculas en la primera letra de una cadena.
¿Cómo se usa 'GetIWin32Window'? – cMinor
- 1. ¿Cómo se muestra un UserControl personalizado como un cuadro de diálogo?
- 2. WPF: Crear un cuadro de diálogo/solicitud
- 3. WPF: ¿Cómo configuro la ventana de propietario de un cuadro de diálogo que muestra un UserControl?
- 4. Abrir el cuadro de diálogo "guardar como ..." desde: ex comando
- 5. Tipo de entrada WPF/cuadro de diálogo?
- 6. ¿Cómo saber si un formulario se muestra como diálogo
- 7. ¿Cómo se estilo WPF Tooltip como un globo de diálogo?
- 8. Android muestra otro cuadro de diálogo desde un cuadro de diálogo
- 9. Prueba de Android: cómo ver un cuadro de diálogo se muestra en la pantalla? (usando ActivityInstrumentationTestCase2)
- 10. Cómo forzar guardar como cuadro de diálogo en Firefox además de cambiar los encabezados?
- 11. Guardar el cuadro de diálogo de archivo en MVC
- 12. ¿Hay un cuadro de diálogo de color para WPF?
- 13. WPF que muestra el cuadro de diálogo antes de la ventana principal
- 14. cómo usar el diálogo Guardar como de Python
- 15. Guardar un lienzo WPF como una imagen
- 16. ¿Cómo se muestra un solo cuadro de diálogo a la vez?
- 17. Fundir todas las otras ventanas de una aplicación cuando se muestra un cuadro de diálogo?
- 18. Cómo mostrar el cuadro de diálogo 'Guardar como' usando PHP para archivos de texto
- 19. ¿WPF tiene un cuadro de diálogo de archivo nativo?
- 20. ¿Cómo se muestra el cuadro de diálogo "Abrir archivo" en Access 2007 VBA?
- 21. ¿Cómo forzar a Chrome a mostrar un cuadro de diálogo Guardar como cuando hago clic en un enlace de descarga?
- 22. Abrir el cuadro de diálogo en WPF MVVM
- 23. ¿Cómo se muestra el cuadro de diálogo Permiso ampliado en FB utilizando la nueva API Graph?
- 24. ¿Cómo cerrar solo un cuadro de diálogo en la tecla ESC en WPF/WinForms?
- 25. datepicker en JQuery UI El cuadro de diálogo muestra el calendario en el cuadro de diálogo abierto
- 26. El cuadro de diálogo FB.ui no se muestra en los dispositivos móviles
- 27. La interfaz se está desvaneciendo, pero no se muestra el cuadro de diálogo de alerta
- 28. WPF cuadro de diálogo personalizado de gestión de errores?
- 29. cuadro de diálogo jQuery
- 30. ¿Se muestra un cuadro de diálogo y sigue entregando clics al fondo?
Entonces, realmente, esta pregunta podría reducirse a "¿Cómo se muestra un cuadro de diálogo Guardar como en WPF?" – RQDQ