Моя первая статья о панели приложений, часть 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.
На этом заканчивается статья о повторном использовании панели приложения на всех страницах приложения.