Скачать книгу

образом:

      <HyperlinkButton Content=«Рыжик» NavigateUri="/page1.xaml»

      Name=«hiperlinkbutton1» Height=«30» Width=«200»

      HorizontalAlignment=«Left» VerticalAlignment=«Top»

      Margin=«0,6,0,0» />

      <HyperlinkButton Content=«Барсик» NavigateUri="/page2.xaml»

      Name=«hiperlinkbutton2» Height=«30» Width=«200»

      HorizontalAlignment=«Left» VerticalAlignment=«Top»

      Margin=«0,6,0,0» />

      <HyperlinkButton Content=«Васька» NavigateUri="/page3.xaml»

      Name=«hiperlinkbutton3» Height=«30» Width=«200»

      HorizontalAlignment=«Left» VerticalAlignment=«Top»

      Margin=«0,6,0,0» />

      Мы поменяли у гиперссылок текст, а также установили размеры и расположение на странице. При желании этого же результата можно добиться, изменяя соответствующие свойства в окне свойств. И самое главное – мы указали в атрибуте NavigateUri нужные имена страниц.

      Удивительно, мы не написали еще ни одной строчки кода на C#, но тем не менее, приложение уже работает. Убедитесь сами. Запустите приложение и попробуйте нажимать на ссылки. Вы будете переходить на первую, вторую или третью страницу в зависимости от выбранной ссылки. Обратите внимание, что для возврата на основную страницу вы можете использовать аппаратную кнопку Back. При этом, если вы находитесь на главной странице и нажмете на кнопку Back, то тем самым вы закроете приложение.

      2.12.3 Навигация через код

      Мы осуществили навигацию при помощи XAML-кода. Такого же результата можно добиться и через код на C#. Для этого добавим в проект три новых элемента Button (кнопка). Чтобы не писать одинаковый код для каждой кнопки, создадим общий обработчик событий для них. Для этого нам нужно знать имена кнопок.

      [XAML]

      <Button Content=«Рыжик» Height=«72» HorizontalAlignment=«Left» Margin=«12,40,0,0»

      Name=«button1» VerticalAlignment=«Top» Width=«160»

      Click=«Button_Click» />

      <Button Content=«Барсик» Height=«72» HorizontalAlignment=«Left» Margin=«12,120,0,0»

      Name=«button2» VerticalAlignment=«Top» Width=«160»

      Click=«Button_Click» />

      <Button Content=«Васька» Height=«72» HorizontalAlignment=«Left» Margin=«12,200,0,0»

      Name=«button3» VerticalAlignment=«Top» Width=«160»

      Click=«Button_Click» />

      [C#]

      private void Button_Click (object sender, RoutedEventArgs e)

      {

      Button clickedbutton = sender as Button;

      switch (clickedbutton.Name)

      {

      case «button1»: NavigationService.Navigate (new Uri (»/page1.xaml», UriKind.Relative));

      break;

      case «button2»:

      NavigationService.Navigate (new Uri (»/page2.xaml», UriKind.Relative));

      break;

      case «button3»:

      NavigationService.Navigate (new Uri (»/page3.xaml», UriKind.Relative));

      break;

      }

      }

      Снова запустите проект и убедитесь, что навигация при помощи кнопок работает так же, как и в примере с гиперссылками.

      Рисунок 2.17 Вид программы в окне эмулятора

      Для перехода назад вы можете использовать метод NavigationService. GoBack, который возвращает к экземпляру предыдущей страницы. Конечно, это дублирует функциональность кнопки «Назад», так что вы, скорее всего, будете вызывать этот метод как часть какой-либо другой функциональности.

      private void button1_Click (object sender, RoutedEventArgs e)

      {

      NavigationService. GoBack ();

      }

      2.12.4 Передача параметров

      Иногда требуется не просто перейти на другую страницу, но и передать ей некоторые данные с предыдущей страницы. Добавьте на первую страницу текстовое поле и кнопку под именем passParam.

      Добавьте код для обработчика щелчка кнопки

      private void passParam_Click (object sender, RoutedEventArgs e)

      {

      NavigationService.Navigate

Скачать книгу