根据按钮单击显示和隐藏UserControls

时间:2015-06-07 03:25:16

标签: c# wpf user-controls

我有3个UserControls和我的MainWindow。在我的UserControl3中,我有两个按钮(button1& button2)。

  1. 我们在启动应用程序时需要将UserControl3添加到我的MainWindow
  2. 如果我点击button1,usercontrol1应出现在我的主窗口上,如果我点击button2,usercontrol2应出现在我的主窗口。
  3. 怎么做?你有这样的例子吗?

1 个答案:

答案 0 :(得分:1)

MainWindow.xaml开始,在窗口底部创建两个按钮,然后在窗口中央添加Stack Panel

... 或者复制XAML标记中的以下<Grid>标记:

<Grid>
    <Button x:Name="UserControl1_Btn" Content="UserControl1" HorizontalAlignment="Left" Margin="10,289,0,10" Width="153"/>
    <Button x:Name="UserControl2_Btn" Content="UserControl2" Margin="354,0,10,10" Height="20" VerticalAlignment="Bottom"/>
    <StackPanel x:Name="StackPanelFixed_SP" Margin="10,10,10,47"/>
</Grid>

然后,通过右键单击项目名称,然后添加 - &gt;,从解决方案资源管理器创建两个用户控件用户控制......(做两次)

enter image description here

在两个用户控件中添加一些您喜欢的内容,对于此示例,我将使用背景颜色,以便您可以判断它是 UserControl1 还是 UserControl2

UserControl1 将彩色为 BLACK

UserControl2 将彩色为 RED

将click事件添加到第一个按钮并添加以下代码行:

enter image description here

    StackPanelFixed_SP.Children.Clear();
    UserControl1 UC1 = new UserControl1();
    StackPanelFixed_SP.Children.Add(UC1);
    UC1.Visibility = System.Windows.Visibility.Visible;

对于第二个按钮,添加以下代码行:

    StackPanelFixed_SP.Children.Clear();
    UserControl2 UC2 = new UserControl2();
    StackPanelFixed_SP.Children.Add(UC2);
    UC2.Visibility = System.Windows.Visibility.Visible;

最后,你将有一个以两个按钮开头的程序(一个在左下角,另一个在右下角),背景为空白。单击其中一个按钮后,您将获得部分UI颜色(我知道它听起来很愚蠢,但我试图指出使用用户控件)。