C# 如何实现usercontrol在一个面板(DockPanel)内单击时可见?
我正在WPF(C#)中制作一个基本应用程序,我想在这里使用用户控件。我已经创建了3个示例UserControl和一个具有按钮、标签、面板等的单页窗口。我想在单击按钮时加载每个UserControl。你可以在下面看到我的逻辑(代码)- 现在我的问题是这个代码不起作用。这说明了一些错误。如下图所示-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
基本上,我想在单击每个用户控件各自的按钮时加载它们。如果任何人有其他解决方案,欢迎使用。您应该访问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);
}