2017-11-23 12 views
0

ich eine 4 Stackpanel in einem DockPanel erstellenStackpanel zeigen Rahmen im Layout-in WPF und XAML

Welche Platte nur ein Rahmenfenster

4 StackPanel

dann habe ich ein Raster erstellen Sie den linken Stackpanel schließen und rechts StackPannel 3 StackPannel

Vorerst ich eine Schaltfläche in der unteren Rahmen hinzuzufügen, zu wechseln ausblenden links und rechts

und zeigen VCenter Frame oder invertieren. Aber ich habe keine Idee, diese Funktion zu machen.

Einige empfehlen für mich?

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    x:Class="PanelUserCtrlSample.MainWindow" 
    Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded"> 
<DockPanel LastChildFill="True"> 
    <StackPanel DockPanel.Dock="Top" Width="Auto" Height="50" Background="Red"> 
     <Frame x:Name="frmMainTop" NavigationUIVisibility="Hidden"> 
     </Frame> 
    </StackPanel> 
    <StackPanel DockPanel.Dock="Bottom" Width="Auto" Height="50" Background="Blue"> 
     <Frame x:Name="frmMainBottom" NavigationUIVisibility="Hidden"> 
     </Frame> 
    </StackPanel> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="83*"/> 
      <ColumnDefinition Width="434*"/> 
     </Grid.ColumnDefinitions> 

     <!--Full Screen--> 

     <!--<StackPanel DockPanel.Dock="" Grid.ColumnSpan="2" Width="Auto" Height="Auto" Background="Black"> 
      <Frame x:Name="frmMainFull" NavigationUIVisibility="Hidden"> 

      </Frame> 
     </StackPanel>--> 

     <!--VCenter--> 
     <StackPanel DockPanel.Dock="Left" Grid.ColumnSpan="2" Width="Auto" Height="Auto" Background="Black"> 
      <Frame x:Name="frmMainVCenter" NavigationUIVisibility="Hidden"> 

      </Frame> 
     </StackPanel> 

     <!--left--> 
     <StackPanel DockPanel.Dock="Left" Grid.Column="0" Width="Auto" Height="Auto" Background="Green"> 
      <Frame x:Name="frmMainLeft" NavigationUIVisibility="Hidden"> 

      </Frame> 
     </StackPanel> 

     <!--Right--> 
     <StackPanel Grid.Column="1" Background="Pink"> 
      <Frame x:Name="frmMainRight" NavigationUIVisibility="Hidden"> 

      </Frame> 
     </StackPanel> 
    </Grid> 
</DockPanel> 

MainWindow_Loaded

private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     frmMainTop.NavigationService.Navigate(new PageTop1()); 
     frmMainLeft.NavigationService.Navigate(new PageLeft1()); 
     frmMainRight.NavigationService.Navigate(new PageRight1()); 
     frmMainBottom.NavigationService.Navigate(new PageBottom1()); 
    } 

Dateiliste

enter image description here

wenn ich ein Full Stackpanel erstellen möchten, Wie kann ich es umsetzen.

Antwort

0

Ich bekomme eine Lösung zur Umsetzung.

MainWindow rootwindow = (MainWindow)Application.Current.MainWindow; 
rootwindow.spMainLeft.Visibility = Visibility.Hidden; 
rootwindow.spMainRight.Visibility = Visibility.Hidden 
rootwindow.pageBottom.lblBottom.Content = "Change";