如何从第一个窗口wpf打开第二个窗口?

我是wpf的新手,我有两个窗口,比如window1和window2。 我在window1中有一个button。 如果我点击那个button,window2必须打开。 我应该怎么做。这是我试过的代码。

window2.show(); 

window1写你的代码。

 private void Button_Click(object sender, RoutedEventArgs e) { window2 win2 = new window2(); win2.Show(); this.Close(); } 

你会想创build一个新的WPF应用程序。 一旦你完成了这个,你应该有一个.xaml文件和一个.cs文件。 这些代表你的主窗口。 创build一个额外的.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(); } 

在WPF中,我们通过使用Show()和ShowDialog()方法有几个选项。 那么如果你想在新窗口打开时closures打开的窗口,那么你可以使用Show()方法

 Window1 win1 = new Window1(); win1.Show(); win1.Close(); 

ShowDialog()也会打开一个窗口,但是在这种情况下,你不能closures以前打开的窗口。

假设第二个窗口被定义为public partial class Window2 : Window ,你可以这样做:

 Window2 win2 = new Window2(); win2.Show(); 

您可以在window1中创buildbutton并双击它。 它会创build新的Click处理程序,在里面你可以写这样的东西:

 var window2 = new Window2(); window2.Show(); 

您将需要像这样创build一个新窗口的实例。

 var window2 = new Window2(); 

一旦你有实例,你可以使用Show()或ShowDialog()方法,这取决于你想要做什么。

 window2.Show(); 

要么

 var result = window2.ShowDialog(); 

ShowDialog()将返回一个Nullable<bool>如果你需要的话。

这帮助了我:所有者方法基本上将窗口连接到另一个窗口,以防需要额外的窗口。

 LoadingScreen lc = new LoadingScreen(); lc.Owner = this; lc.Show(); 

考虑这一点。

 this.WindowState = WindowState.Normal; this.Activate(); 

你可以使用这个代码,希望能帮到你

 private void OnClickNavigate(object sender, RoutedEventArgs e) { NavigatedWindow navigatesWindow = new NavigatedWindow(); navigatesWindow.ShowDialog(); } 

谢谢 :)