2017-07-20 45 views
0

我有一個WPF窗體中的StackPanel。我確實有3個不同的WPF用戶控件,需要根據條件在面板內部加載。任何想法,我知道它應該在後面的代碼完成,試圖將usercontrol添加到stackPanel我無法找到add方法。我需要使用與堆疊面板不同的控制嗎?如何將WPFUserControl添加到StackPanel,具體取決於C#中的條件WPF

<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="&gt;&gt;" Margin="-16,-191,0,0" FontSize="10" RenderTransformOrigin="-1.338,2.571" VerticalAlignment="Top" HorizontalAlignment="Left" Visibility="Hidden"/> 
     </Grid> 
    </Border> 
</StackPanel> 

回答

1

您可以將任何UIElement添加到StackPanelChildren集合:

pnlRightMenu.Children.Add(new UserControl1()); 
1

在您的按鈕單擊事件處理程序,你會希望通過條件切換。

使用開關的用戶控件的新實例追加到的StackPanel的Children集合:

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; 
    } 
} 
相關問題