144

我是 WPF 的新手。我有两个窗口,例如window1 和window2。我在window1 中有一个按钮。如果我单击该按钮,window2 必须打开。我该怎么做?

这是我尝试过的代码:

window2.show();
4

9 回答 9

258

将您的代码写入window1.

private void Button_Click(object sender, RoutedEventArgs e)
{
    window2 win2 = new window2();
    win2.Show();
}
于 2012-06-21T08:51:28.440 回答
43

创建新的 WPF 应用程序后,您应该有一个 .xaml 文件和一个 .cs 文件。这些代表您的主窗口。创建一个额外的 .xaml 文件和 .cs 文件来表示您的子窗口。

主窗口.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>

主窗口.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
于 2012-06-21T08:32:57.940 回答
18
private void button1_Click(object sender, RoutedEventArgs e)
{
    window2 win2 = new window2();
    win2.Show();
}
于 2012-06-21T08:11:41.560 回答
5

在 WPF 中,我们有几个使用 Show() 和 ShowDialog() 方法的选项。

好吧,如果你想在新窗口打开时关闭打开的窗口,那么你可以使用 Show() 方法:

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

ShowDialog() 也会打开一个窗口,但在这种情况下,您不能关闭之前打开的窗口。

于 2012-06-21T10:49:23.343 回答
5

假设第二个窗口定义为public partial class Window2 : Window,您可以通过以下方式进行:

Window2 win2 = new Window2();
win2.Show();
于 2012-06-21T08:10:21.833 回答
5

这对我有帮助: Owner 方法基本上将窗口与另一个窗口联系起来,以防您想要具有相同窗口的额外窗口。

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

考虑这一点。

this.WindowState = WindowState.Normal;
this.Activate();
于 2015-10-07T22:51:42.930 回答
2

您可以使用以下代码:

private void OnClickNavigate(object sender, RoutedEventArgs e)
{
    NavigatedWindow navigatesWindow = new NavigatedWindow();
    navigatesWindow.ShowDialog();
}
于 2014-01-24T14:27:38.777 回答
2

您可以在 window1 中创建一个按钮并双击它。它将创建一个新的单击处理程序,您可以在其中编写如下内容:

var window2 = new Window2();
window2.Show();
于 2012-06-21T08:11:19.913 回答
2

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

var window2 = new Window2();

一旦你有了实例,你可以根据你想要做的事情使用Show()ShowDialog()方法。

window2.Show();

或者

var result = window2.ShowDialog();

Nullable<bool>如果您需要,ShowDialog() 将返回 a 。

于 2015-08-20T18:48:14.090 回答