Réponses:
Lorsque vous avez créé une nouvelle application WPF, vous devez disposer d'un fichier .xaml et d'un fichier .cs. Ceux-ci représentent votre fenêtre principale. Créez un fichier .xaml et un fichier .cs supplémentaires pour représenter votre sous-fenêtre.
<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();
}
}
Ensuite, ajoutez le code supplémentaire dont vous avez besoin à ces classes:
SubWindow.xaml
SubWindow.xaml.cs
En supposant que la deuxième fenêtre est définie comme public partial class Window2 : Window
, vous pouvez le faire en:
Window2 win2 = new Window2();
win2.Show();
Cela m'a aidé: la méthode Owner lie essentiellement la fenêtre à une autre fenêtre au cas où vous voudriez des fenêtres supplémentaires avec les mêmes.
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
Considérez cela également.
this.WindowState = WindowState.Normal;
this.Activate();
Dans WPF, nous avons quelques options en utilisant les méthodes Show () et ShowDialog ().
Eh bien, si vous souhaitez fermer la fenêtre ouverte lorsqu'une nouvelle fenêtre s'ouvre, vous pouvez utiliser la méthode Show ():
Window1 win1 = new Window1();
win1.Show();
win1.Close();
ShowDialog () ouvre également une fenêtre, mais dans ce cas, vous ne pouvez pas fermer votre fenêtre précédemment ouverte.
Vous devrez créer une instance d'une nouvelle fenêtre comme ça.
var window2 = new Window2();
Une fois que vous avez l'instance, vous pouvez utiliser la méthode Show () ou ShowDialog () en fonction de ce que vous voulez faire.
window2.Show();
ou
var result = window2.ShowDialog();
ShowDialog () renverra un Nullable<bool>
si vous en avez besoin.