Odpowiedzi:
Po utworzeniu nowej aplikacji WPF powinieneś mieć plik .xaml i plik .cs. Reprezentują twoje główne okno. Utwórz dodatkowy plik .xaml i .cs, które będą reprezentować Twoje podokno.
<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();
}
}
Następnie dodaj dowolny dodatkowy kod, którego potrzebujesz do tych klas:
SubWindow.xaml
SubWindow.xaml.cs
Zakładając, że drugie okno jest zdefiniowane jako public partial class Window2 : Window
, możesz to zrobić poprzez:
Window2 win2 = new Window2();
win2.Show();
To mi pomogło: Metoda Owner w zasadzie wiąże okno z innym oknem na wypadek, gdybyś chciał mieć dodatkowe okna z tymi samymi oknami.
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
Rozważ to również.
this.WindowState = WindowState.Normal;
this.Activate();
W WPF mamy kilka opcji przy użyciu metod Show () i ShowDialog ().
Cóż, jeśli chcesz zamknąć otwarte okno, gdy zostanie otwarte nowe okno, możesz użyć metody Show ():
Window1 win1 = new Window1();
win1.Show();
win1.Close();
ShowDialog () również otwiera okno, ale w tym przypadku nie można zamknąć wcześniej otwartego okna.
Będziesz musiał utworzyć wystąpienie nowego okna, takiego jak to.
var window2 = new Window2();
Gdy już masz instancję, możesz użyć metody Show () lub ShowDialog () w zależności od tego, co chcesz zrobić.
window2.Show();
lub
var result = window2.ShowDialog();
ShowDialog () zwróci, Nullable<bool>
jeśli tego potrzebujesz.