2016-09-15 6 views
0

私はメインコントロールを1つ開いて、そのユーザーコントロールにテキストボックスとボタンをいくつか持っています。他のユーザーコントロールのボタンからポップアップで開いていたユーザーコントロールを閉じる方法WPFのイベントをクリック

その時点でボタンをクリックすると、ユーザーコントロールchild2のユーザーコントロールのchild2が開きます。閉じるボタンがあり、そのボタンをクリックすると、現在のユーザーコントロールを閉じます。

+0

を使用すると、ユーザーコントロールを切り替えることがしたいですか? –

+0

私は理解できません。ユーザーコントロールを閉じることはできません。ユーザーコントロールを保持するウィンドウを閉じることができます。 あなたの質問をよりうかがって、コード例を挙げてみてください。 ここでは、人よりも早急にコードを取り消してしまう人物です。 –

+0

いいえしたいですか?ユーザーコントロールのみを閉じないでください。 –

答えて

2

あなたは閉じることができますあなたのUserControlの を開くためにPopupクラスを使用していると仮定すると、child1child2は、以下のように閉じているとき:

MainWindow.xaml.cs

//Opens the child1 UserControl from MainWindow 
private void button_Click(object sender, RoutedEventArgs e) 
{ 
    UserControl1 child1 = new UserControl1(); 
    Popup p = new Popup(); 
    child1.ParentPopup = p; 
    p.Child = child1; 
    p.IsOpen = true; 
} 


UserControl1.xaml.cs

public Popup ParentPopup { get; set; } 
public UserControl1() 
{ 
    InitializeComponent(); 
} 

//Opens the child2 UserControl from child1 UserControl 
private void button_Click(object sender, RoutedEventArgs e) 
{ 
    UserControl2 child2 = new UserControl2(); 
    Popup p = new Popup(); 
    child2.Unloaded += Child2_Unloaded; 
    child2.ParentPopup = p; 
    p.Child = child2; 
    p.IsOpen = true; 
} 

//Closes the child1 UserControl when child2 is closed 
private void Child2_Unloaded(object sender, RoutedEventArgs e) 
{ 
    ParentPopup.IsOpen = false; 
} 


UserControl2.xaml.cs

public Popup ParentPopup { get; set; } 

public UserControl2() 
{ 
    InitializeComponent(); 
} 

//Closes the child2 UserControl 
private void button_Click(object sender, RoutedEventArgs e) 
{ 
    ParentPopup.IsOpen = false; 
} 
関連する問題