-1

在我的项目中,我有带有 2 个用户控件的 MainForm。UserControl1 有一个按钮,使 UserControl2 可见。

这是我所做的:

用户控制1

    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 的按钮时,什么也没有发生。

4

2 回答 2

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;
于 2013-12-22T18:24:23.707 回答
0

添加表格 apanel并执行以下操作:

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);
于 2013-12-22T19:26:45.597 回答