2010-03-09 102 views
1

public partial class Window1:Window { public Window1() { InitializeComponent(); }在主窗口中打開新的UserControl

private void ToggleButton_Checked(object sender, RoutedEventArgs e) 
    { 
     switch ((sender as Button).Content.ToString()) 
     { 
      case "UserControl 1": 
       AddItemToContainer(new UserControl1()); 
       break; 
      case "UserControl 2": 
       AddItemToContainer(new UserControl2()); 
       break; 
      case "UserControl 3": 
       AddItemToContainer(new UserControl3()); 
       break; 
      default: 
       break; 
     } 
    } 

    void AddItemToContainer(UIElement _myElement) 
    { 
      Grid.SetColumn(_myElement, 1); 
      HostContainer.Children.Add(_myElement); 
    } 
} 
} 
} 

有了這個,我可以在myMainwindow打開一個新的用戶控件

比方說,像添加的孩子myMainWinodw,現在我想從我的用戶點擊一個按鈕,所以我打開另一個用戶控件稱取的第一個

的地方我解釋:

我有它具有3個按鈕的第一個打開第一用戶控件第二個以打開第二用戶控件和TH的mainWindows Ë第三打開最近的用戶控件,想象我的第一用戶控件讓我們把它UC1打開,

在UC1我有一個按鈕,打開第二個用戶控件(我們稱之爲UC2)我喜歡當我短聲按鈕從UC1的UC2被打開,走UC1的地方(當然UC2仍myMainWinodw的孩子) 我已經alredy嘗試調用其他梅索德的AddItemToContainer梅索德但任何反應

任何建議,請

回答

0

此方法可能有所幫助:

致電容器控件並修改它的Children.This示例假定容器控件是一個Grid。

C#爲的UserControl1窗口1

public partial class Window1 : Window 
{ 
    public Window1() 
    { 
     InitializeComponent(); 
     HostContainer.Children.Add(new UserControl1(HostContainer)); 
    } 
} 

C#代碼

public partial class UserControl1 : UserControl 
{ 
    Grid _hostContainer; 

    public UserControl1(Grid HostContainer) 
    { 
     InitializeComponent(); 
     _hostContainer = HostContainer; 
    } 

    private void ToggleButton_Checked(object sender, RoutedEventArgs e) 
    { 
     UserControl2 UC2 = new UserControl2(); 
     _hostContainer.Children.Add(UC2); 
    } 
}