Pregunta

Se trata de la aplicación WPF que genera informes.

Los informes tienen una estructura simple: byte [] m_Data, cadena m_Mime.

Se crea una matriz de datos, se establece el tipo MIME, ahora lo que necesito es mostrar el cuadro de diálogo con la misma funcionalidad que encontramos en los navegadores web: cuadro de diálogo Abrir / Guardar / Cancelar que abre el archivo en la aplicación apropiada según el tipo MIME de la respuesta.

¿Fue útil?

Solución

WPF no tiene dicho diálogo porque no es una aplicación web, es una aplicación que se ejecuta localmente y utiliza las instalaciones nativas del sistema operativo, no HTTP.

Debería ser fácil escribir para escribir el cuadro de diálogo Abrir / Guardar / Cancelar, para implementar la funcionalidad de abrir debería guardar el archivo en el disco (tal vez en el directorio temporal devuelto por System.IO.Path.GetTempPath o al nombre de archivo devuelto por System.IO.Path.GetTempFileName).

Asegúrese de que el archivo tenga la extensión correcta porque Windows usa extensiones de archivo y no tipos MIME (porque los tipos MIME no existían cuando escribieron Windows).

Para abrir el archivo que acaba de crear, use System.Diagnostic.Process.Start, por ejemplo, esto abrirá el archivo MyPdfFile.pfd en Acrobat Reader si está instalado (desde el directorio actual, no olvide incluir la ruta completa en su código):

System.Diagnostics.Process.Start("MyPdfFile.pdf");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top