如何根据 C# WPF 中的条件将 WPFUserControl 添加到 StackPanel
how to add WPFUserControl to a StackPanel depending on condition in C# WPF
我在 WPF 表单中有一个 StackPanel
。我确实有 3 个不同的 WPF 用户控件,我需要根据情况在面板内加载它们。任何想法,我知道它应该在后面的代码中完成,试图将 usercontrol 添加到 stackPanel 我找不到添加方法。我是否需要使用与堆栈面板不同的控件来执行此操作?
<StackPanel Panel.ZIndex="1" x:Name="pnlRightMenu" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,403,-576,342" Grid.Column="1" Width="576" VerticalAlignment="Center">
<Border BorderBrush="Transparent" BorderThickness="1" Width="550" Background="#4C808080" Margin="0,-163,0,-126" >
<Grid>
<Button x:Name="btnRightMenuHide" Click="btnRightMenuHide_Click" Content=">>" Margin="-16,-191,0,0" FontSize="10" RenderTransformOrigin="-1.338,2.571" VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="Hidden"/>
</Grid>
</Border>
</StackPanel>
您可以将任何 UIElement
添加到 StackPanel
的 Children
collection:
pnlRightMenu.Children.Add(new UserControl1());
在您的按钮单击事件处理程序中,您需要切换条件。
使用开关将用户控件的新实例附加到 StackPanel 的子集合:
private void btnRightMenuHide_Click(object sender, RoutedEventArgs e)
{
switch (condition)
{
case "case 1":
UserControl1 uc1 = new UserControl1();
pnlRightMenu.Children.Add(uc1);
break;
case "case 2":
UserControl2 uc2 = new UserControl2();
pnlRightMenu.Children.Add(uc2);
break;
case "case 3":
UserControl3 uc3 = new UserControl3();
pnlRightMenu.Children.Add(uc3);
break;
}
}
我在 WPF 表单中有一个 StackPanel
。我确实有 3 个不同的 WPF 用户控件,我需要根据情况在面板内加载它们。任何想法,我知道它应该在后面的代码中完成,试图将 usercontrol 添加到 stackPanel 我找不到添加方法。我是否需要使用与堆栈面板不同的控件来执行此操作?
<StackPanel Panel.ZIndex="1" x:Name="pnlRightMenu" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,403,-576,342" Grid.Column="1" Width="576" VerticalAlignment="Center">
<Border BorderBrush="Transparent" BorderThickness="1" Width="550" Background="#4C808080" Margin="0,-163,0,-126" >
<Grid>
<Button x:Name="btnRightMenuHide" Click="btnRightMenuHide_Click" Content=">>" Margin="-16,-191,0,0" FontSize="10" RenderTransformOrigin="-1.338,2.571" VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="Hidden"/>
</Grid>
</Border>
</StackPanel>
您可以将任何 UIElement
添加到 StackPanel
的 Children
collection:
pnlRightMenu.Children.Add(new UserControl1());
在您的按钮单击事件处理程序中,您需要切换条件。
使用开关将用户控件的新实例附加到 StackPanel 的子集合:
private void btnRightMenuHide_Click(object sender, RoutedEventArgs e)
{
switch (condition)
{
case "case 1":
UserControl1 uc1 = new UserControl1();
pnlRightMenu.Children.Add(uc1);
break;
case "case 2":
UserControl2 uc2 = new UserControl2();
pnlRightMenu.Children.Add(uc2);
break;
case "case 3":
UserControl3 uc3 = new UserControl3();
pnlRightMenu.Children.Add(uc3);
break;
}
}