Розробка програм для Windows Phone/Навігація (Silverlight)
Ви можете додати до своєї програми більше сторінок (форм), які мають різне призначення і здійснювати навігацію між ними. Навігацію між сторінками можна реалізувати декількома шляхами:
- за допомогою елементу 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 за виключенням того, що якщо ви будете знаходитись на головній сторінці програми, кнопка телефону змусить програму завершитися.
Література
[ред.]- Programming Windows Phone 7, Charles Petzold
- 45 дней с Windows Phone 7., Блог Сергея Пугачёва