View Full Version : [c#,xaml] Apertura Finestra
One Beer
28-09-2012, 15:41
Ciao volevo farvi una domanda semplice, quali sono i comandi in wpf per chiamare una nuova "form", cioè Form.Show e Form.ShowDialog.
Io ho 2 documenti prova.xaml e home.xaml,
vorrei aprire tramite click su un button prova.xaml come devo fare tnx
[Kendall]
28-09-2012, 16:36
Ciao volevo farvi una domanda semplice, quali sono i comandi in wpf per chiamare una nuova "form", cioè Form.Show e Form.ShowDialog.
Io ho 2 documenti prova.xaml e home.xaml,
vorrei aprire tramite click su un button prova.xaml come devo fare tnx
I metodi gli hai scritti tu stesso.
La chiamata al metodo Show() apre la nuova finestre come non-modale, mentre la chiamata a ShowDialog() la apre modale.
Per far questo devi però prima istanziare una finestra. Questo lo puoi fare o all'interno dell'evento stesso di click oppure ponendo la finestra "Prova" tra i membri di Home (e creando l'istanza per esempio nel costruttore).
Diciamo che in via generale (e sottolineo generale perchè poi le possibilità sono molte) ti consiglio di istanziare all'interno dell'evento se ti servono finestre modali, mentre di porre le "finestre figlie" tra i membri della Home nel caso di finestre non modali (in questa maniera potrai accedere ad esse in ogni momento dalla finestra Home).
A livello di codice ecco un esempio banale di apertura di una finestra modale dall'evento OnClick di un pulsante della MainWindow:
private void Button_Click(object sender, RoutedEventArgs e)
{
var finestra = new ProvaWindow();
finestra.ShowDialog();
}
Come puoi vedere l'istanza viene creata dentro all'evento. Come detto prima per una modale non ci sono problemi (in quanto per tornare alla Home devi per forza chiuderla, quindi poi smette di esistere), mentre se avessi usato il metodo Show() avresti creato ad ogni click una nuova finestra Prova non modale. Queste però, nel momento stesso in cui vengono create, non sono più accessibili dalla finestra Home (in quanto quest'ultima non possiede più nessun riferimento a loro).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.