SplitView

Последнее обновление: 11.02.2016

Элемент SplitView представляет контейнер, который состоит из двух панелей: Pane и Content. Панель Content представляет собой основное содержимое контейнера. Она является открытой. А панель Pane может быть скрыта, при необходимости ее можно раскрывать во всю ширину и скрывать обратно:

<Page
    x:Class="LayoutApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:LayoutApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <SplitView x:Name="splitView" Background="White" PaneBackground="LightBlue">
        <SplitView.Pane>
            <StackPanel>
                <TextBlock Text="Выдвижная панель" />
            </StackPanel>
        </SplitView.Pane>
        <SplitView.Content>
            <Grid>
                <Button Content="Переключить вид" HorizontalAlignment="Center" Click="Button_Click" />
            </Grid>
        </SplitView.Content>
    </SplitView>
</Page>

С помощью свойств SplitView.Pane и SplitView.Content устанавливается содержимое панелей Pane и Content. Через свойство PaneBackground задается цвет панели Pane (стандартное свойство Background относится к панели Content). Чтобы разместить на этих панелях какое-либо содержимое, как правило, в них помещается еще один контейнер. Так, в панели Content размещен контейнер Grid, в котором есть кнопка. У этой кнопки задан обработчик нажатия: Click="Button_Click". Поэтому перейдем к файлу кода и поместим в него следующий метод:

private void Button_Click(object sender, RoutedEventArgs e)
{
    splitView.IsPaneOpen = !splitView.IsPaneOpen;
}

Свойство IsPaneOpen элемента SplitView управляет видимостью панели Pane. Если оно равно true, то панель Pane находится в раскрытом состоянии. И если нам вдруг потребуется, чтобы эта панель была по умолчанию раскрыта, то в разметке XAML у SplitView мы могли бы использовать атрибут IsPaneOpen="True".

Теперь если мы запустим приложения, то мы увидим только содержимое панели Content:

Элемент SplitView в Universal Windows Platform

Нажмем на кнопку. У нас сработает обработчик, который переключит состояние панели Pane и тем самым раскроет ее:

Обратите внимание, что панель Pane частично перекрывает панель Content и кнопку. Это поведение панели Pane по умолчанию, но его можно переопределить, установив у SplitView нужное значение для атрибута DisplayMode:

  • Overlay: панель Pane перекрывает панель Content (по умолчанию). Закрыть панель Pane можно, нажав на любое место на панели Content

  • Inline: панель Pane сдвигает панель Content. При этом панель Pane нельзя закрыть, нажав на любое место на панели Content, как в случае с Overlay

  • CompactOverlay: начальная ширина панели Pane задается с помощью свойства CompactPaneLength, а остальная часть скрывается. При раскрытии панель Pane действует также, как и при режиме Overlay

  • CompactInline: начальная ширина панели Pane задается с помощью свойства CompactPaneLength, а остальная часть скрывается. При раскрытии панель Pane действует также, как и при режиме Inline

Например, используем режим CompactInline:

<SplitView x:Name="splitView" DisplayMode="CompactInline" CompactPaneLength="20"  
			Background="White" PaneBackground="LightBlue" >
<!-- остальное содержимое -->
</SplitView>

В скрытом состоянии:

В раскрытом:

Из остальных свойств SplitView следует отметить свойство OpenPaneLength, которое задает ширину панели Pane в раскрытом состоянии.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850