Статьи

Windows Phone 7: глобальная панель приложений

Моя первая статья о панели приложений,  часть 10 — Windows Phone 7 — ApplicationBar,  рассказывает о том, как создавать приложения в Windows Phone 7. Моя вторая статья о панели приложений рассказывает о том, как создать динамическую панель приложений. Часть 53 — Windows Phone 7 — Dynamic ApplicationBar

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

Шаг 1: Создайте панель приложения в MainPage.xaml, которая содержит две кнопки и строку меню.

<phone:PhoneApplicationPage.ApplicationBar>
   <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
      <shell:ApplicationBarIconButton IconUri="/Images/add.png" Text="add" />
      <shell:ApplicationBarIconButton IconUri="/Images/minus.png" Text="minus" />
      <shell:ApplicationBar.MenuItems>
         <shell:ApplicationBarMenuItem Text="MenuItem 1" />
         <shell:ApplicationBarMenuItem Text="MenuItem 2" />
      </shell:ApplicationBar.MenuItems>
   </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

Шаг 2: Теперь добавьте еще одну страницу в проект и назовите ее SecondPage.xaml

Шаг 3: Добавьте кнопку в MainPage.xaml, чтобы перейти к SeconPage.xaml.

<Button Content="Show next Page" Height="70" HorizontalAlignment="Center" Margin="6,0,0,0" Name="btnNextPage" VerticalAlignment="Top" Width="420" Click="btnNextPage_Click" />

Шаг 4: В коде MainPage.xaml, поместите код ниже, чтобы перейти к SecondPage.xaml.

private void btnNextPage_Click(object sender, RoutedEventArgs e)
{
   this.NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
}

Шаг 5: Теперь запустите приложение, вы увидите панель приложения в MainPage.xaml, как показано ниже.

Шаг 6: Теперь нажмите Показать следующую страницу, чтобы показать SecondPage.xaml, теперь вы заметите, что панель приложения отсутствует.

Шаг 7: Теперь мы изменим код, чтобы на всех страницах отображалась одна и та же панель приложения. Удалите штрих-код приложения из MainPage.xaml и поместите его в Application.Resources в App.xaml. Я добавил события щелчка для ApplicationBarIconButton и ApplicationBarMenuItem. Единственная разница в ApplicationBar MainPage.xaml и App.xaml заключается в x: Key, который присутствует в App.xaml

 

<Application.Resources>
   <shell:ApplicationBar x:Key="GlobalAppBar" IsVisible="True" IsMenuEnabled="True">
      <shell:ApplicationBarIconButton IconUri="/Images/add.png" Text="add" Click="add_Click" />
      <shell:ApplicationBarIconButton IconUri="/Images/minus.png" Text="minus" Click="minus_Click" />
      <shell:ApplicationBar.MenuItems>
         <shell:ApplicationBarMenuItem Text="MenuItem 1" Click="MenuItem1_Click" />
         <shell:ApplicationBarMenuItem Text="MenuItem 2" Click="MenuItem2_Click" />
      </shell:ApplicationBar.MenuItems>
   </shell:ApplicationBar>
</Application.Resources>

Шаг 8: Поместите события ApplicationBarIconButton и ApplicationBarMenuItem в код позади файла App.xaml.cs.

private void add_Click(object sender, EventArgs e)
{
   MessageBox.Show("Add works!");
}

private void minus_Click(object sender, EventArgs e)
{
   MessageBox.Show("Minus works!");
}

private void MenuItem1_Click(object sender, EventArgs e)
{
   MessageBox.Show("Menu item 1 works!");
}

private void MenuItem2_Click(object sender, EventArgs e)
{
   MessageBox.Show("Menu item 2 works!");
}

Шаг 9: Добавьте ApplicationBar = «{ StaticResource GlobalAppBar внутри телефона: PhoneApplicationPage из MainPage.xaml и SecondPage.xaml.

Шаг 10: Теперь запустите приложение, и вы увидите, что панель приложения присутствует в MainPage.xaml, а также SecondPage.xaml.

 

На этом заканчивается статья о повторном использовании панели приложения на всех страницах приложения.