我的项目我有2个UserControls的MainForm。 UserControl1有一个按钮,使UserControl2可见。
这就是我的所作所为:
的UserControl1
private void Button1_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
MainWindow mw = new MainWindow();
mw.CallMethod();
}
主窗口
public void CallMethod()
{
USERCONTROL2 UC2 = new USERCONTROL2();
UC2.Visibility = Visibility.Visible;
grid.Children.Add(UC2);
}
...但是当我点击UserControl1的按钮时,什么也没发生。
答案 0 :(得分:0)
在您的后台代码中声明:
Private Visibility _vis_UC_2;
Public Visibility vis_UC2
{
get
{
return _vis_UC2;
}
set
{
_vis_UC2 = value;
OnPropertyChanged("vis_UC2");
}
}
不要忘记将INotifyPropertyChanged
添加到您的班级
然后将UserControl的可见性绑定到vis_UC2。
在构造函数中设置启动可见性,如下面的
Public Void MainWindow()
{
InitializeCompotenents();
vis_UC2 = Visibility.Collapsed;
}
最后点击按钮,您只需说出以下内容:
vis_UC2 = Visibility.Visible;
答案 1 :(得分:0)
在表单中添加panel
并执行此操作:
UserControl1 u1 = new UserControl1();
UserControl2 u2 = new UserControl2();
// When you want UserControl1.
u2.Hide();
u1.Show();
u1.Dock = DockStyle.Fill;
panel1.Controls.Add(u1);
// When you want UserControl2.
u1.Hide();
u2.Show();
u2.Dock = DockStyle.Fill;
panel1.Controls.Add(u2);