2012-04-27 21 views
5

Sto sviluppando un'applicazione WPF per un negozio.Il miglior approccio per un'applicazione MDI in WPF?

Quindi ho una finestra principale e tutto il resto sarà figlio.

Quale è la cosa migliore da utilizzare come finestra figlio.

  1. Finestra
  2. UserControl

finestra sarà normale, sarà superiore sul MainWindow e se il suo UserControl sarà in una tela di un MainWindow.

Quindi qualcuno può suggerirmi quale sia il migliore da usare da questo due.

risposta

5

Si consiglia di utilizzare UserControls per Windows figlio. Questo ti permette di configurare tutti i controlli "genitore" nella finestra principale e i bambini non li sovrascriveranno.

Come ulteriore suggerimento, consiglierei di esaminare Caliburn Micro. Questo è un ottimo framework per gestire Windows WPF e controlli utente.

Per aggiungere un UserControl bambino alla finestra padre, di solito è sufficiente aggiungere un ContentControl alla mia forma principale in questo modo:

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

Basta assegnare il vostro bambino a che il controllo e vi andrà bene.

+0

Come posso aggiungere Child Windows (UserControl) a MainWindow, l'uso di Canvas è buono. Dal momento che devo aprire la finestra secondaria a una volta, –

+0

, di solito aggiungo semplicemente un ContentControl alla finestra principale. Ho modificato il mio post per darti maggiori dettagli. – IAmTimCorey

+0

Can ContentControl supporta più controlli figlio –

1

Come molte cose nella vita & codifica: dipende :)

  • Finestra

    • Quando la nuova finestra ha il suo proprio stato & comportamento
    • Quando non v'è poca o nessuna interazione/messaggistica tra la finestra principale & la finestra pop-up
  • controllo utente

    • Quando lo stato della finestra principale di fondo è fondamentale per il funzionamento del pop-up
    • Quando i cambiamenti di stato devono essere passato tra le 2 finestre

Queste sono alcune delle decisioni di progettazione che vengono in mente ...

+0

non ha compreso –

4

Suggerisco di utilizzare un framework MDI come AvalonDo ck: http://avalondock.codeplex.com/ Risparmierai molto tempo.

+0

Questo è in realtà uno dei migliori approcci per l'applicazione MDI con WPF in quanto migliora gli svantaggi della vecchia applicazione MDI e MVVM è anche possibile con questo. –

1

Le finestre secondarie sono perfette per un'applicazione desktop quando si decide di utilizzare un'interazione finestra padre-figlio, anche se personalmente suggerisco di utilizzare una cornice nella finestra principale e usarla per ospitare più pagine.

Per ulteriori informazioni sulla navigazione in WPF e Silverlight è possibile visitare this link

Con questo approccio vi aiuterà a raggiungere i seguenti vantaggi:

  1. minore possibilità di perdite di memoria a causa di gestori di eventi separati.
  2. È possibile ottenere una progettazione coerente senza indicare lo stile delle finestre secondarie perché è possibile impostare gli sfondi delle pagine in modo trasparente.
  3. Gli utenti non avranno difficoltà a individuare quale finestra ha lo stato attivo quando altri programmi sono stati utilizzati contemporaneamente con il software che si sta creando.

Penso anche che ci siano anche molte cose che potresti prendere in considerazione nella costruzione di questo software, ma alla fine della giornata sei ancora quello che dovrebbe decidere in merito.

Questo è solo il mio suggerimento e spero che questo aiuti :).

1

Si consideri per controllare MDIContainer. Un progetto simile a MDI for WPF, ma ti dà più libertà, dal momento che non ti costringe a implementare la finestra MDIChild, l'interfaccia o altro.

Problemi correlati