Respostas:
Ao criar um novo aplicativo WPF, você deve ter um arquivo .xaml e um arquivo .cs. Estes representam sua janela principal. Crie um arquivo .xaml adicional e um arquivo .cs para representar sua sub-janela.
<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();
}
}
Em seguida, adicione qualquer código adicional necessário a essas classes:
SubWindow.xaml
SubWindow.xaml.cs
Assumindo que a segunda janela é definida como public partial class Window2 : Window
, você pode fazê-lo:
Window2 win2 = new Window2();
win2.Show();
Isso me ajudou: O método Owner basicamente vincula a janela a outra janela, caso você queira janelas extras com as mesmas.
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
Considere isso também.
this.WindowState = WindowState.Normal;
this.Activate();
No WPF, temos algumas opções usando os métodos Show () e ShowDialog ().
Bem, se você deseja fechar a janela aberta quando uma nova janela for aberta, use o método Show ():
Window1 win1 = new Window1();
win1.Show();
win1.Close();
ShowDialog () também abre uma janela, mas neste caso você não pode fechar a janela aberta anteriormente.
Você precisará criar uma instância de uma nova janela como essa.
var window2 = new Window2();
Depois de ter a instância, você pode usar o método Show () ou ShowDialog () , dependendo do que você deseja fazer.
window2.Show();
ou
var result = window2.ShowDialog();
ShowDialog () retornará um Nullable<bool>
se você precisar disso.