Главная » Разработка для Windows Phone 7 » Jot и ApplicationBar

0

ApplicatonBar приложения Jot включает четыре кнопки: для добавления новой страницы, возвращения к предыдущей странице, перехода на следующую страницу и удаления текущей страницы. (Если текущая страница является единственной, удаляется только то, что было введено на ней.) Для каждой кнопки описан собственный обработчик события Click:

Проект Silverlight: Jot Файл: MainPage.xaml (фрагмент)

<phone:PhoneApplicationPage.ApplicationBar>

<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">

<shell:ApplicationBarIconButton x:Name="appbarAddButton"

IconUri="/Images/appbar.add.rest.png" Text="add page" Click="OnAppbarAddClick" />

<shell:ApplicationBarIconButton x:Name="appbarLastButton"

IconUri="/Images/appbar.back.rest.png" Text="last page" Click="OnAppbarLastClick" />

<shell:ApplicationBarIconButton x:Name="appbarNextButton"

IconUri="/Images/appbar.next.rest.png" Text="next page" Click="OnAppbarNextClick" />

<shell:ApplicationBarIconButton x:Name="appbarDeleteButton"

IconUri="/Images/appbar.delete.rest.png" Text="delete page" Click="OnAppbarDeleteClick" />

<shell:ApplicationBar.MenuItems>

<shell:ApplicationBarMenuItem Text="swap colors"

Click="OnAppbarSwapColorsClick" />

<shell:ApplicationBarMenuItem Text="light stroke width"

Click="OnAppbarSetStrokeWidthClick" />

<shell:ApplicationBarMenuItem Text="medium stroke width"

Click="OnAppbarSetStrokeWidthClick" />

<shell:ApplicationBarMenuItem Text="heavy stroke width"

Click="0nAppbarSetStrokeWidthClick" />

</shell:ApplicationBar.MenuItems> </shell:ApplicationBar> </phone:PhoneApplicationPage.ApplicationBar>

Меню тоже реализовано посредством свойства-элемента MenuItems (Пункты меню) с коллекцией объектов ApplicationBarMenuItem (Пункты меню панели приложения). Пункты меню отображаются при нажатии многоточия на панели приложения. Каждый из них включает только короткую строку текста, написанную строчными буквами. (Количество пунктов меню не должно превышать пяти, текст должен быть не более 20 символов.) Для первого пункта меню (для изменения цветов) предусмотрен собственный обработчик события Click; остальные три совместно используют один обработчик Click.

Рассмотрим обработчики событий Click для всех четырех кнопок: Проект Silverlight: Jot Файл: MainPage.xaml.cs (фрагмент)

void 0nAppbarAddClick(object sender, EventArgs args) {

StrokeCollection strokes = new StrokeCollection(); appSettings.PageNumber += 1;

appSettings.StrokeCollections.Insert(appSettings.PageNumber, strokes);

inkPresenter.Strokes = strokes;

TitleAndAppbarUpdate();

}

void 0nAppbarLastClick(object sender, EventArgs args) {

appSettings.PageNumber -= 1;

inkPresenter.Strokes = appSettings.StrokeCollections[appSettings.PageNumber]; TitleAndAppbarUpdate();

}

void 0nAppbarNextClick(object sender, EventArgs args) {

appSettings.PageNumber += 1;

inkPresenter.Strokes = appSettings.StrokeCollections[appSettings.PageNumber]; TitleAndAppbarUpdate();

}

void 0nAppbarDeleteClick(object sender, EventArgs args) {

MessageBoxResult result = MessageBox.Show("Delete this page?", "Jot",

MessageBoxButton.0KCancel);

if (result == MessageBoxResult.0K) {

if (appSettings.StrokeCollections.Count == 1) {

appSettings.StrokeCollections[0].Clear();

}

else {

appSettings.StrokeCollections.RemoveAt(appSettings.PageNumber);

if (appSettings.PageNumber == appSettings.StrokeCollections.Count) appSettings.PageNumber -= 1;

inkPresenter.Strokes =

appSettings.StrokeCollections[appSettings.PageNumber]; }

TitleAndAppbarUpdate();

}

Некоторую сложность представляет лишь удаление страницы. Но обратите внимание, что оно начинается с запроса подтверждения от пользователя посредством вызова MessageBox.Show! В данном контексте окно сообщений кажется очень архаичным, но в телефоне ничто не может сравниться с ним по простоте, и это самое главное его преимущество. Если требуется проинформировать пользователя о чем-то и получить подтверждение о том, что информация принята к сведению посредством кнопки OK, или если необходимо задать вопрос, требующий ответа в виде OK и Cancel, окно сообщений – оптимальный выбор.

Окно сообщений отображается вверху экрана и деактивирует все приложение до тех пор, пока пользователь не закроет его:

Источник: Чарльз Петзольд, Программируем Windows Phone 7, Microsoft Press, © 2011.

По теме:

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