Как открыть второе окно из первого окна в WPF?
Я новичок в WPF. У меня есть два окна, такие как window1 и window2. У меня есть одна кнопка в файл window1. Если я нажму эту кнопку, window2 должен открыться. Что я должен сделать для этого?
вот код, который я пробовал:
window2.show();
9 ответов:
написать свой код
window1
.private void Button_Click(object sender, RoutedEventArgs e) { window2 win2 = new window2(); win2.Show(); this.Close(); }
вы хотите создать новое приложение WPF. После того как вы сделали это, вы должны иметь .xaml-файл и a .cs-файл. Они представляют ваше главное окно. Создайте дополнительный .xaml файл и .cs-файл для представления вашего подокна.
MainWindow.xaml
<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>
MainWindow.код XAML.cs
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void ButtonClicked(object sender, RoutedEventArgs e) { SubWindow subWindow = new SubWindow(); subWindow.Show(); } }
затем добавьте любой дополнительный код, который вам нужен для этих классов:
SubWindow.xaml SubWindow.xaml.cs
private void button1_Click(object sender, RoutedEventArgs e) { window2 win2 = new window2(); win2.Show(); }
это помогло мне: Метод владельца в основном связывает окно с другим окном, Если вам нужны дополнительные окна с теми же самыми.
LoadingScreen lc = new LoadingScreen(); lc.Owner = this; lc.Show();
учесть и это.
this.WindowState = WindowState.Normal; this.Activate();
в WPF у нас есть несколько вариантов с помощью методов Show() и ShowDialog ().
Ну, если вы хотите закрыть открытое окно, когда открывается новое окно, вы можете использовать метод Show ():
Window1 win1 = new Window1(); win1.Show(); win1.Close();
ShowDialog () также открывает окно, но в этом случае вы не можете закрыть ранее открытое окно.
предполагая, что второе окно определяется как
public partial class Window2 : Window
, вы можете сделать это:Window2 win2 = new Window2(); win2.Show();
вам нужно будет создать экземпляр нового окна, как так.
var window2 = new Window2();
если у вас есть экземпляр, вы можете использовать показать() или ShowDialog () метод в зависимости от того, что вы хотите сделать.
window2.Show();
или
var result = window2.ShowDialog();
ShowDialog () вернет a
Nullable<bool>
Если вам это нужно.