Risposte:
Quando hai creato una nuova applicazione WPF dovresti avere un file .xaml e un file .cs. Questi rappresentano la tua finestra principale. Crea un file .xaml e un file .cs aggiuntivi per rappresentare la tua finestra secondaria.
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Open Window" Click="ButtonClicked" Height="25" HorizontalAlignment="Left" Margin="379,264,0,0" Name="button1" VerticalAlignment="Top" Width="100" />
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ButtonClicked(object sender, RoutedEventArgs e)
{
SubWindow subWindow = new SubWindow();
subWindow.Show();
}
}
Quindi aggiungi qualsiasi codice aggiuntivo necessario a queste classi:
SubWindow.xaml
SubWindow.xaml.cs
Supponendo che la seconda finestra sia definita come public partial class Window2 : Window
, puoi farlo:
Window2 win2 = new Window2();
win2.Show();
Questo mi ha aiutato: il metodo Owner fondamentalmente lega la finestra a un'altra finestra nel caso in cui desideri finestre extra con le stesse.
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
Considera anche questo.
this.WindowState = WindowState.Normal;
this.Activate();
In WPF abbiamo un paio di opzioni usando i metodi Show () e ShowDialog ().
Bene, se vuoi chiudere la finestra aperta quando viene aperta una nuova finestra, puoi usare il metodo Show ():
Window1 win1 = new Window1();
win1.Show();
win1.Close();
Anche ShowDialog () apre una finestra, ma in questo caso non è possibile chiudere la finestra aperta in precedenza.
Avrai bisogno di creare un'istanza di una nuova finestra in questo modo.
var window2 = new Window2();
Una volta ottenuta l'istanza, puoi utilizzare il metodo Show () o ShowDialog () a seconda di cosa vuoi fare.
window2.Show();
o
var result = window2.ShowDialog();
ShowDialog () restituirà un Nullable<bool>
se necessario.