2010-03-09 103 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); 
    } 
}