StackPanel покажет Frame in Layout в WPF и xaml

Я создаю 4 стека в одной DockPanel

Какая панель просто рамное окно

4 StackPanel

затем я создаю сетку, включающую левую панель стека и правую панель стека 3 StackPannel

А пока я добавляю кнопку в Bottom Frame, чтобы переключать Hide влево и вправо

и показать VCenter Frame или инвертировать. Но я не знаю, чтобы сделать эту функцию.

Некоторые предлагают для меня?

<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());
    }

Список файлов

введите описание изображения здесь

если я хочу создать полную стековую панель, как мне ее реализовать.

1 ответ

Решение

Я получаю решение для реализации.

MainWindow rootwindow = (MainWindow)Application.Current.MainWindow;
rootwindow.spMainLeft.Visibility = Visibility.Hidden;
rootwindow.spMainRight.Visibility = Visibility.Hidden
rootwindow.pageBottom.lblBottom.Content = "Change";
Другие вопросы по тегам