2012-06-21 12 views
74

私はwpfの新人です。私はwindow1とwindow2のような2つのウィンドウを持っています。私はwindow1に1つのボタンを持っています。そのボタンをクリックすると、window2が開きます。私はそれのために何をしなければならないのですか?wpfの最初のウィンドウから2番目のウィンドウを開く方法は?

window2.show(); 
+4

何を試しましたか?あなたが言及しなかった特定の問題がなければ、あなたが検索することによって見つけることができる基本的なことです。 – Reniuz

答えて

154

window1にコードを記述してください。

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

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

+5

ウィンドウロードイベントに 'this.Close()'を入れるのは良い考えではないでしょう。 – StingyJack

2

二ウィンドウはpublic partial class Window2 : Windowとして定義されていると仮定すると、次の方法でそれを行うことができます:あなたはそれをwindow1を、ダブルクリックでボタンを作成することができます

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

私はwindow1からwindow2を開きたいです。 –

2

。あなたは新しいWPFアプリケーションを作成することをお勧めします

var window2 = new Window2(); 
window2.Show(); 
15
private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    window2 win2 = new window2(); 
    win2.Show(); 
} 
25

:それはあなたがこのような何かを書くことができます内側に新しいクリックハンドラーを作成します。これを済ませたら、.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

+7

簡単!私はwpfが嫌いです。それは非常に無駄に複雑で、反作用になるように設計されています。 –

+13

それ以外は間違っています。あなたは新しいアプリケーション全体を必要としません。ちょうど新しいウィンドウ。 –

5

WPFでは、Show()とShowDialog()メソッドを使用していくつかのオプションがあります。まあ 新しいウィンドウが開いて取得するときに開いたウィンドウを閉じたい場合は、あなたがショーを使用することができます()メソッド

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

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

1

あなたはこのコードを使用することができ、希望はあなたがそうのような新しいウィンドウのインスタンスを作成する必要がありますあなたの

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

    } 

感謝:)

2

を支援します。あなたは、インスタンスを持っていたら

var window2 = new Window2(); 

あなたが何をしたいかに応じて、Show()またはShowDialog()メソッドを使用することができます。あなたがそれを必要とする場合

window2.Show(); 

または

var result = window2.ShowDialog(); 

にShowDialog()はNullable<bool>を返します。

4

これは私に役立ちました: 所有者メソッドは、基本的に別のウィンドウと同じウィンドウを追加する場合に備えて、そのウィンドウを別のウィンドウに結び付けます。

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

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

this.WindowState = WindowState.Normal; 
this.Activate(); 
関連する問題