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