如何实现用户控件在一个面板(DockPanel)内单击时可见?

How to implement usercontrol to be visible on click inside one panel (DockPanel)?

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

    public partial class Dashboard : Window
{
    public Dashboard()
    {
        InitializeComponent();
    }

    private void btn1_Click(object sender, RoutedEventArgs e)
    {

        Dock_MainPanel.Controls.Clear();
        Dock_MainPanel.Visible = true;
        Sample1 usr1 = new Sample1();
        usr1.Show();
        Dock_MainPanel.Controls.Add(usr1);
    }

    private void btn2_Click(object sender, RoutedEventArgs e)
    {
        //SAMPLE CODE
    }
}

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

Error shown in image

基本上,我想在单击各自的按钮时加载每个 UserControl。如果大家有其他解决方案,欢迎提出。

您应该在 DockPanel

中访问 'Children' 集合
    Dock_MainPanel.Children.Clear();

    Dock_MainPanel.Children.Add(usr1);

正如@Stefan W. 建议您应该将 UserControl 的一个实例添加到 DockPanel 的 Children 集合中,但是如果您打算向同一个 DockPanel 添加多个元素,您可能还想设置元素的附加 Dock 属性 用于指定元素在 DockPanel 中的位置。您可以使用 DockPanel.SetDock 方法执行此操作。此外,要使 DockPanel 可见,请将其 Visibility 设置为 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);
}