2012-03-23 16 views
6

Quando faccio clic su un pulsante sulla barra di navigazione, si apre una nuova finestra. Per esempio:Modifica del contenuto della finestra WPF

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     mw.Show(); 

    } 

Ora, Non voglio mostrarlo in una nuova finestra. Invece di quello, voglio che venga mostrato nella stessa finestra. Ho provato con il seguente:

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     //mw.Show(); 
     this.Content = Finanz f; 

    } 

ma non è riuscito. Quello che dovrei dire è che ora ho molte finestre diverse e voglio che vengano mostrate tutte in una finestra, facendo clic su un pulsante diverso. Come posso gestirlo?

risposta

6

Quello che dovete fare è usare un UserControl piuttosto che una finestra per il vostro contenuto sostituibile. Aggiungi un nuovo UserControl per ogni possibile contenuto che vuoi mostrare in questo.Contenuto al tuo progetto. Aggiungi il contenuto che avevi precedentemente nella seconda finestra all'appropriato UserControl. Dopodiché puoi semplicemente istanziare il nuovo controllo nel tuo codice e assegnarlo alla tua area di contenuto della finestra principale.

Ad esempio, si crea un UserControl ctlFinanz con il contenuto della finestra Finanz precedente. Ora è sufficiente scrivere:

this.Content = new ctlFinanz(login); 

Questo è tutto :-)

1

Ho avuto lo stesso problema e ho deciso di creare un usercontrol separato per ogni finestra, inserirli nel mio wpf e impostare la visibilità di tutte le finestre tranne quella attiva su Collapsed.

0

Per me, questo suona come luogo di utilizzare un telaio con le pagine. Invece di creare molte finestre, crea una finestra con una cornice, quindi inserisci il contenuto nelle pagine. Quindi tutto ciò che devi fare è cambiare il frame. Contenuti su una pagina diversa ogni volta che premi un pulsante di navigazione.

Problemi correlati