2012-03-23 14 views
6

ナビゲーションバーのボタンをクリックすると、新しいウィンドウが開きます。たとえば、WPFウィンドウのコンテンツを変更する

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     mw.Show(); 

    } 

ここでは、新しいウィンドウで表示したくありません。その代わりに、私はそれを同じウィンドウに表示したい。私は次のように試しました:

private void btFinanzen_Click(object sender, RoutedEventArgs e) 
    { 
     Finanz mw = new Finanz(login); 
     //mw.Show(); 
     this.Content = Finanz f; 

    } 

しかし失敗しました。 私が言うべきことは、私は今や多くの異なるウィンドウを持っており、それぞれを別々のボタンをクリックすることで1つのウィンドウに表示させたいということです。 これをどうすれば管理できますか?

答えて

6

あなたがしなければならないのは、置き換え可能なコンテンツ用のウィンドウではなく、UserControlを使用することです。プロジェクトに表示する内容ごとに新しいUserControlを追加します。 2番目のウィンドウで以前に持っていたコンテンツを適切なUserControlに追加します。その後、新しいコントロールをコード内でインスタンス化し、メインウィンドウのコンテンツ領域に割り当てることができます。

は、たとえば、あなたの前のFinanzウィンドウの内容とユーザーコントロールctlFinanzを作成します。今、あなたは、単に書く:私に:-)

1

私は同じ問題を抱えていたと、すべてのウィンドウのために別々のユーザーコントロールを作成し、私のWPFでそれらを入れて、折りたたみへのアクティブなものを除くすべてのウィンドウの可視性を設定することを決めました。

0

すべてです

this.Content = new ctlFinanz(login); 

を、これは、ページのフレームを使用する場所のように聞こえます。たくさんのウィンドウを作る代わりに、フレームで1つのウィンドウを作成し、コンテンツをページに配置します。次に、ナビゲーションボタンを押すたびに、フレームの.Contentを別のページに変更するだけです。

関連する問題