2012-04-27 19 views
5

Estoy desarrollando una aplicación WPF para una tienda.¿El mejor enfoque para una aplicación de MDI en WPF?

Así que tengo una ventana principal y el resto será niño.

Cuál es la mejor opción para utilizar como ventana secundaria.

  1. Ventana
  2. control de usuario

ventana será normal, será superior en el MainWindow y si su control de usuario que será en un lienzo de un MainWindow.

Entonces, ¿alguien puede sugerirme cuál es el mejor para usar de estos dos?

Respuesta

5

Recomendaría usar UserControls para sus ventanas hijas. Esto le permite configurar todos los controles "principales" en su ventana principal y los niños no los anularán.

Como una sugerencia adicional, recomendaría investigar Caliburn Micro. Ese es un gran marco para lidiar con las ventanas de WPF y los controles de usuario.

Para agregar un control de usuario niño a la ventana padre, por lo general sólo añadir ContentControl a mi forma principal de este modo:

<ContentControl x:Name="ViewWindow" Margin="10" /> 

Basta con asignar a su hijo a que el control y se le multa.

+0

¿Cómo puedo agregar Child Windows (UserControl) a MainWindow, está usando Canvas es bueno. Como tengo que abrir varias ChildWindow a la vez –

+0

, generalmente solo agrego un ContentControl a la ventana principal. He editado mi publicación para darte más detalles. – IAmTimCorey

+0

Puede ContentControl es compatible con varios controles secundarios –

1

Como muchas cosas en la vida & codificación: depende :)

  • Ventana

    • Cuando la nueva ventana tiene su propio estado & comportamiento
    • Cuando hay poca o ninguna interacción/mensajes entre la ventana principal & la ventana emergente
  • de Control de Usuario

    • Cuando el estado de la ventana principal subyacente es fundamental para el funcionamiento de la emergente
    • Cuando los cambios de estado que se deben transmitir entre las 2 ventanas

Estas son algunas de las decisiones de diseño que vienen a la mente ...

+0

no entiendo –

4

es mejor utilizar un marco MDI como AvalonDo ck: http://avalondock.codeplex.com/ Ahorrará mucho tiempo.

+0

Este es realmente uno de los mejores enfoques para la aplicación MDI con WPF, ya que mejora las desventajas de la antigua aplicación MDI y MVVM también es posible con esto. –

1

Las ventanas secundarias serán geniales para una aplicación de escritorio cuando se decida usar una interacción de ventana padre-hijo, aunque personalmente sugiero que use un marco en sus ventanas principales y lo use para alojar varias páginas.

Para obtener más información sobre la navegación en WPF y Silverlight se puede visitar this link

uso de este enfoque le ayudará a lograr las siguientes ventajas:

  1. menor posibilidad de pérdidas de memoria debido a los controladores de eventos no fijadas.
  2. Se podría lograr un diseño consistente sin indicar el estilo para las ventanas secundarias porque podría establecer fondos de página en transparente.
  3. Los usuarios no tendrán problemas para localizar qué ventana tiene el foco cuando otros programas se usaron simultáneamente con el software que está creando.

También creo que hay muchas cosas que podrías considerar al construir este software, pero al final del día todavía eres el que debería decidir sobre este asunto.

Esto es solo mi sugerencia y espero que esto ayude :).

1

tener en cuenta para comprobar MDIContainer. Un proyecto similar a MDI for WPF, pero te da más libertad, ya que no te obliga a implementar la ventana, interfaz de MDIChild ni nada.

Cuestiones relacionadas