Domanda strana, ma che mi lascia un po 'perplesso. Ai vecchi tempi in cui avevamo Terminals e DOS, in genere le applicazioni avevano solo una "finestra", e quella era a schermo intero. Quando le persone cambiavano funzioni, non c'era il concetto di aprire una nuova finestra, ma il contenuto della finestra principale veniva sovrascritto. Quindi c'era solo una finestra principale, ma più schermi che erano stati renderizzati.Implementazione di più schermate in un'applicazione
Come si può creare qualcosa di simile in un'applicazione moderna, WinForms o WPF?
Sembra che ci siano due approcci:
- avere più finestre. Questo è il solito approccio e in genere questo ha senso consentire all'utente di lavorare con più finestre contemporaneamente, ma questo potrebbe non essere richiesto/desiderato. L'uso di ShowDialog() invece di Show() è il solito modo di creare il secondo Window Modal.
- Dispone di una sola finestra, ma con un controllo TabControl. Nascondi le schede e cambiale automaticamente. Questo è vicino al comportamento "Una finestra, più schermi", ma naturalmente diventa caotico dato che tutti i controlli sono nella stessa classe Form (sebbene si possa sostenere che ciò imponga la corretta denominazione dei controlli. classi parziali e uno .cs per schermo)
Mi chiedo se esiste un modo migliore? Essenzialmente qualcosa che dice "Guarda, non mi importa di cose come lo stile/le icone dei bordi o la striscia del menu principale. Tutto ciò che voglio è che tu faccia apparire questo schermo in quest'area". Un po 'come le Pagine Master ASP.net in cui le pagine reali definiscono solo il contenuto che viene reso in Segnaposto.
C'è qualche corretto meccanismo per fare qualcosa del genere?
Oppure c'è qualcosa di sbagliato con l'intero approccio?
+1; Stavo solo scrivendo una variazione di questa risposta. Ora non devo! –
Questa è una grande idea, soprattutto perché i controlli utente possono essere inseriti in altri contenitori 8come un pannello), il che rende la gestione indolore. –