WPFで最初のウィンドウから2番目のウィンドウを開くにはどうすればよいですか?


125

WPFは初めてです。window1とwindow2のような2つのウィンドウがあります。window1にボタンが1つあります。そのボタンをクリックすると、window2を開く必要があります。そのために何をすべきですか?

これが私が試したコードです:

window2.show();

回答:


237

コードをで記述しwindow1ます。

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

この行をWindow_Loadedイベントに書き込むことはできますか?その場合、2番目のウィンドウは表示されません。
Manish Dubey、2015

37

新しいWPFアプリケーションを作成したら、.xamlファイルと.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

15
十分簡単です!私はwpfが嫌いです。それはあまりにも無意味に複雑で、直感に反するように設計されています。
Ren

17
private void button1_Click(object sender, RoutedEventArgs e)
{
    window2 win2 = new window2();
    win2.Show();
}

5

2番目のウィンドウがとして定義されているとすると、次のようpublic partial class Window2 : Windowに実行できます。

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

window1からwindow2を開きます。
ASHOK A 2012

5

これは私に役立ちました。Ownerメソッドは基本的に、同じウィンドウを持つ追加のウィンドウが必要な場合に備えて、ウィンドウを別のウィンドウに関連付けます。

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

これも考慮してください。

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

5

WPFでは、Show()メソッドとShowDialog()メソッドを使用して、いくつかのオプションがあります。

新しいウィンドウが開いたときに開いているウィンドウを閉じたい場合は、Show()メソッドを使用できます。

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

ShowDialog()もウィンドウを開きますが、この場合、以前に開いたウィンドウを閉じることはできません。


2

そのような新しいウィンドウのインスタンスを作成する必要があります。

var window2 = new Window2();

インスタンスを取得したら目的に応じてShow()またはShowDialog()メソッドを使用できます。

window2.Show();

または

var result = window2.ShowDialog();

ShowDialog()は、Nullable<bool>必要に応じてを返します。


2

window1にボタンを作成し、それをダブルクリックします。新しいクリックハンドラーを作成します。ここで、次のようなコードを記述できます。

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

2

次のコードを使用できます。

private void OnClickNavigate(object sender, RoutedEventArgs e)
{
    NavigatedWindow navigatesWindow = new NavigatedWindow();
    navigatesWindow.ShowDialog();
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.