Câu trả lời:
Khi bạn đã tạo một ứng dụng WPF mới, bạn phải có tệp .xaml và tệp .cs. Chúng đại diện cho cửa sổ chính của bạn. Tạo tệp .xaml bổ sung và tệp .cs để đại diện cho cửa sổ phụ của bạn.
<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();
}
}
Sau đó, thêm bất kỳ mã bổ sung nào bạn cần vào các lớp này:
SubWindow.xaml
SubWindow.xaml.cs
Giả sử cửa sổ thứ hai được định nghĩa là public partial class Window2 : Window
, bạn có thể làm điều đó bằng cách:
Window2 win2 = new Window2();
win2.Show();
Điều này đã giúp tôi: Về cơ bản, phương pháp Owner liên kết cửa sổ này với một cửa sổ khác trong trường hợp bạn muốn có thêm các cửa sổ giống nhau.
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
Hãy xem xét điều này là tốt.
this.WindowState = WindowState.Normal;
this.Activate();
Trong WPF, chúng tôi có một số tùy chọn bằng cách sử dụng các phương thức Show () và ShowDialog ().
Vâng, nếu bạn muốn đóng cửa sổ đã mở khi một cửa sổ mới mở ra thì bạn có thể sử dụng phương thức Show ():
Window1 win1 = new Window1();
win1.Show();
win1.Close();
ShowDialog () cũng mở một cửa sổ, nhưng trong trường hợp này, bạn không thể đóng cửa sổ đã mở trước đó.
Bạn sẽ cần tạo một phiên bản của một cửa sổ mới như vậy.
var window2 = new Window2();
Khi bạn có phiên bản, bạn có thể sử dụng phương thức Show () hoặc ShowDialog () tùy thuộc vào những gì bạn muốn làm.
window2.Show();
hoặc là
var result = window2.ShowDialog();
ShowDialog () sẽ trả về a Nullable<bool>
nếu bạn cần.