Pregunta extraña, pero que me desconcierta un poco. En los viejos tiempos cuando teníamos Terminales y DOS, las aplicaciones generalmente solo tenían una "ventana", y eso era una pantalla completa. Cuando las personas cambiaban de funciones, no existía el concepto de abrir una nueva ventana, sino que se sobrescribía el contenido de la ventana principal. Entonces, solo había una ventana principal, pero múltiples pantallas que se representaban en ella.Implementación de pantallas múltiples en una aplicación
¿Cómo se podría crear algo así en una aplicación moderna, ya sea WinForms o WPF?
Parece que hay dos enfoques:
- tiene varias ventanas. Este es el enfoque habitual y, por lo general, tiene sentido permitir que el usuario trabaje con varias ventanas al mismo tiempo, pero esto puede no ser necesario o no necesario. Usar ShowDialog() en lugar de Show() es la forma habitual de crear el segundo Window Modal.
- Tiene solo una ventana, pero con un TabControl en ella. Ocultar las pestañas y cambiarlas programáticamente. Esto es parecido al comportamiento de "Una ventana, pantallas múltiples", pero naturalmente se vuelve complicado ya que tiene todos los controles en la misma clase de Formulario (aunque se podría argumentar que esto obliga a nombrar correctamente los controles. Además, se podría recomendar su uso clases parciales y una .cs por pantalla)
Me pregunto si hay una manera mejor? Esencialmente, algo que dice "Mira, no me importan cosas como el estilo de borde/iconos o la tira del menú principal. Lo único que quiero es que visualices esta pantalla en esta área". Algo parecido a las páginas maestras de ASP.net, donde las páginas reales solo definen el contenido que se representa en Placeholders.
¿Hay algún mecanismo adecuado para hacer algo como eso?
¿O hay algún problema con todo el enfoque?
+1; Estaba escribiendo una variación de esta respuesta. ¡Ahora no tengo que hacerlo! –
Esa es una gran idea, especialmente porque los controles de usuario pueden colocarse en otros contenedores 8 como un panel), lo que hace que la administración sea sencilla. –