Главная » C#, Windows Runtime, XAML, Разработка для Windows 8 » Application Bar

0

Несмотря на то, что AppBar  является таким  же элементом  управления, как и все остальные, он был вынесен в  отдельный раздел. Дело в  том, что AppBar является абсолютно  новым элементов  управления и  именно  он  возникает перед пользователем, когда необходимо отвлечься от контента, чтобы передать приложению какую-то команду.

Итак, что такое AppBar и какие элементы он может содержать? Чтобы увидеть пример элемента управления AppBar, перейдите в  основной  экран Windows 8 и нажмите правой кнопкой мыши или выполните жест, перемещая палец от нижней границы экрана вверх. На экране отобразится следующий элемент:

Рис. 2.15.

Тут расположена всего одна кнопка с надписью. Однако если запустить Internet Explorer, можно будет увидеть сразу две панели приложений.  Верхняя панель предоставляет  возможность  переключения   между   страницами   браузера, а  нижняя  —  элементы  навигации. Причем  тут  можно  видеть как  кнопки, поля редактирования, так и более  сложные элементы (на изображении ниже интерфейс немного сжат, чтобы не предоставлять снимок всего экрана):

Рис. 2.16.

Таким образом, панель приложений может располагаться как сверху, так и снизу окна и представляет собой обычный контейнер, содержащий любое количество произвольных элементов управления. Несмотря на это, нужно стараться делать приложение так, чтобы сильно не перегружать панель приложений и сводить все команды к единственному щелчку. Если Вы планируете использовать панель приложений для задавания многих значений, то самое время  задуматься об отдельном окне настроек.

С другой стороны, о наличии  AppBar нужно помнить на  протяжении всего процесса создания приложений и использовать его  там, где это нужно. Опыт работы с Windows Phone показывает, что  многие разработчики приложений WP 7 продолжали наполнять свои  интерфейсы кнопками Refresh, Home и др., забывая об AppBar (который есть и в WP 7).

Рассмотрим  пример  использования этого  элемента  управления.   Для   этого в любой из страниц Вашего приложения поместите следующий код (сразу после открывающего элемента Page):

<Page.TopAppBar>

<AppBar x:Name="BottomAppBar"  Height="88">

<Grid>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="*"/>

<ColumnDefinition Width="Auto"/>

</Grid.ColumnDefinitions>

<Button Grid.Column="0"

Style="{StaticResource HomeAppBarButtonStyle}"/>

<StackPanel Grid.Column="1"

Orientation="Horizontal" HorizontalAlignment="Right">

<Button Style="{StaticResource SaveAppBarButtonStyle}" />

</StackPanel>

</Grid>

</AppBar>

</Page.TopAppBar>

Как видно, чтобы создать объект AppBar, его необходимо поместить  в  одно из  двух свойств  TopAppBar  или  BottomAppBar  объекта  Page.  Сам  объект AppBar может содержать контент, который обычно состоит из одного элемента- контейнера. Далее Вы создаете обработчики событий, привязанных к кнопкам AppBar,  и  реализуете  код.  В  нашем  примере мы  создали  верхний  AppBar следующего вида:

Рис. 2.17.

Особенность нашего примера состоит в  том, что мы не определяли  кнопки самостоятельно, а использовали  готовые стили из файла  StandardStyles.xaml. Тут объявлен основной стиль AppBarButtonStyle,  а также множество стилей Based On на основе основного. Вот пример стиля для кнопки Home:

<Style x:Key="HomeAppBarButtonStyle" TargetType="Button" BasedOn="{StaticResource AppBarButtonStyle}">

<Setter Property="AutomationProperties.AutomationId" Value="HomeAppBarButton"/>

<Setter Property="AutomationProperties.Name"

Value="Home"/>

<Setter Property="Content" Value="&#xE10F;"/>

</Style>

Как  видите, тут  задается ID,  имя  кнопки  и  содержимое. Чтобы не  рисовать различные рисунки, разработчики стиля решили использовать набор символов Segoe UI Symbols. Поэтому если Вам нужны новые кнопки, попробуйте найти новый символ и задать его в стиле аналогично стандартным.

Код символов можно посмотреть с помощью специальной утилиты  Character Map, которая является частью платформы:

Рис. 2.18.

Сергей Лутай, Сергей Байдачный, Windows 8 для C# разработчиков

По теме:

  • Комментарии