Yanıtlar:
Yeni bir WPF uygulaması oluşturduğunuzda, bir .xaml dosyasına ve bir .cs dosyasına sahip olmanız gerekir. Bunlar ana pencerenizi temsil eder. Alt pencerenizi temsil edecek ek bir .xaml dosyası ve .cs dosyası oluşturun.
<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();
}
}
Ardından bu sınıflara ihtiyacınız olan ek koda ekleyin:
SubWindow.xaml
SubWindow.xaml.cs
İkinci pencerenin şu şekilde tanımlandığını varsayarsak public partial class Window2 : Window, bunu şu şekilde yapabilirsiniz:
Window2 win2 = new Window2();
win2.Show();
Bu bana yardımcı oldu: Sahip yöntemi, aynı pencerelerle fazladan pencere istemeniz durumunda, temelde pencereyi başka bir pencereye bağlar.
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
Bunu da düşünün.
this.WindowState = WindowState.Normal;
this.Activate();
WPF'de Show () ve ShowDialog () yöntemlerini kullanarak birkaç seçeneğimiz var.
Peki, yeni bir pencere açıldığında açılan pencereyi kapatmak istiyorsanız, Show () yöntemini kullanabilirsiniz:
Window1 win1 = new Window1();
win1.Show();
win1.Close();
ShowDialog () ayrıca bir pencere açar, ancak bu durumda daha önce açtığınız pencereyi kapatamazsınız.
Bunun gibi yeni bir pencere örneği oluşturmanız gerekecek.
var window2 = new Window2();
Eğer örneğini sahip olduktan sonra kullanabilirsiniz göster () veya ShowDialog () Yapmak istediğiniz şeye bağlı olarak yöntem.
window2.Show();
veya
var result = window2.ShowDialog();
ShowDialog (), buna Nullable<bool>ihtiyacınız olursa bir döndürür .