Розробка програм для Windows Phone/Навігація (Silverlight)

Розробка програм для Windows Phone ред.

Ви можете додати до своєї програми більше сторінок (форм), які мають різне призначення і здійснювати навігацію між ними. Навігацію між сторінками можна реалізувати декількома шляхами:

  • за допомогою елементу HyperlinkButton
  • за допомогою коду, використавши об'єкт NavigationService, який є властивістю сторінки.

За допомогою HyperlinkButton ред.

За допомогою елементу HyperlinkButton навігація здійснюється просто, вам необхідно розмістити елемент на сторінці, з якої буде здійснюватись навігація, і у його полі NavigateUri задати шлях (URI) до сторінки яка знаходиться в вашому проекті. Шлях є відносним кореня проекту, наприклад:

<HyperlinkButton Content="На іншу сторінку" NavigateUri="/AnotherPage.xaml"/>
<HyperlinkButton Content="На головну сторінку" NavigateUri="/MainPage.xaml"/>
<HyperlinkButton Content="На сторінку у вкладеному каталозі" NavigateUri="/folder/InFolderPage.xaml"/>

За допомогою коду ред.

Навігацію по сторінкам можна здійснювати за допомогою коду. Кожна сторінка має властивість NavigationService, це об’єкт який містить в собі все що необхідно для того щоб керувати навігацією, включаючи метод Navigate:

this.NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));


Аргументом методу є об’єкт типу Uri. Як видно із прикладу шлях до сторінки починається із слеша, а тип побудови шляху посилання є відносним. UriKind може мати ще інші значення для типу Uri, такі як Absolute і RelativeOrAbsolute. Для навігації по сторінкам власного проекту вони не знадобляться.

Ще одним корисним методом який має NavigationService є метод GoBack();

this.NavigationService.GoBack();


Виклик цього методу змушує програму повернутися на попередню сторінку, яка була відкрита раніше. Навігаційна система в Silverlight для Windows Phone організована у якості стеку (тобто використовує метафору "останній прийшов – перший пішов"). Коли в коді виконується метод Navigate, сторінка яку програма залишила поміщається в стек, а замість неї відображається новий екземпляр щойно створеної сторінки, на яку здійснювалась навігація. Кожного разу при навігації цим методом створюється новий екземпляр цієї сторінки. Коли сторінка робить виклик методу GoBack — або коли користувач тисне кнопку для навігації назад на телефоні — сторінка, на який він знаходився закривається, а видимою стає та сторінка що була перед нею, яка буде останньою сторінкою що збережена в стеку. Кнопка назад у телефоні виконує ту саму функцію що і метод GoBack за виключенням того, що якщо ви будете знаходитись на головній сторінці програми, кнопка телефону змусить програму завершитися.

Література ред.