C# 如何实现usercontrol在一个面板(DockPanel)内单击时可见?

C# 如何实现usercontrol在一个面板(DockPanel)内单击时可见?,c#,asp.net,wpf,user-controls,dockpanel,C#,Asp.net,Wpf,User Controls,Dockpanel,我正在WPF(C#)中制作一个基本应用程序,我想在这里使用用户控件。我已经创建了3个示例UserControl和一个具有按钮、标签、面板等的单页窗口。我想在单击按钮时加载每个UserControl。你可以在下面看到我的逻辑(代码)- 现在我的问题是这个代码不起作用。这说明了一些错误。如下图所示- 基本上,我想在单击每个用户控件各自的按钮时加载它们。如果任何人有其他解决方案,欢迎使用。您应该访问DockPanel中的“儿童”集合 Dock_MainPanel.Children.Clear

我正在WPF(C#)中制作一个基本应用程序,我想在这里使用用户控件。我已经创建了3个示例UserControl和一个具有按钮、标签、面板等的单页窗口。我想在单击按钮时加载每个UserControl。你可以在下面看到我的逻辑(代码)-

现在我的问题是这个代码不起作用。这说明了一些错误。如下图所示-


基本上,我想在单击每个用户控件各自的按钮时加载它们。如果任何人有其他解决方案,欢迎使用。

您应该访问DockPanel中的“儿童”集合

    Dock_MainPanel.Children.Clear();

    Dock_MainPanel.Children.Add(usr1);

正如@Stefan W.所建议的,您应该将
UserControl
的一个实例添加到DockPanel的子集合中,但如果您打算将多个元素添加到同一
DockPanel
中,您可能还需要设置元素的附加
Dock
属性,以指定
DockPanel
中的位置元素将被定位。您可以使用
DockPanel.SetDock
方法执行此操作。另外,要使
DockPanel
可见,可以将其
可见性设置为
Visibility.visible
。试试这个:

private void btn1_Click(object sender, RoutedEventArgs e)
{
    Dock_MainPanel.Children.Clear();
    Dock_MainPanel.Visibility = Visibility.Visible;
    Sample1 usr1 = new Sample1();
    DockPanel.SetDock(usr1, Dock.Right);
    Dock_MainPanel.Children.Add(usr1);
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
    Dock_MainPanel.Children.Clear();
    Dock_MainPanel.Visibility = Visibility.Visible;
    Sample1 usr1 = new Sample1();
    DockPanel.SetDock(usr1, Dock.Right);
    Dock_MainPanel.Children.Add(usr1);
}