Windows Phone - OnNavigatingFrom - проблема - PullRequest
4 голосов
/ 21 марта 2010

Я считаю, что это просто проблема для меня из-за отсутствия у меня навыков программирования. В настоящее время я изучаю переходы между навигацией по страницам с помощью приложений Windows Phone. Первоначально я использовал раскадровки и выполнял обработчики событий, чтобы анимировать мои страницы на экране и за его пределами. Это приводит к проблеме, когда вы хотите перейти на множество страниц с одной страницы, используя один и тот же переход.

Итак, я начал смотреть на события OnNavigatedTo и OnNavigatingFrom, и хотя он хорошо работает для OnNavigatedTo, последние просто не будут работать. Кажется, что сборка Microsoft.Phone.Navigation не содержит OnNavigatingFrom и ссылается на System.Windows.Navigation, компилируется нормально, но я не могу получить анимированные страницы при навигации.

У меня на странице Page2 есть кнопка, с которой я хочу вернуться на главную страницу (после того, как я перезаписал клавишу «Назад» сообщением для тестирования). У меня есть переходы, сделанные на странице, и это код обработчика событий ...

private void btnP2_BackToP1Clicked(object sender, System.Windows.RoutedEventArgs e)
 {          
    NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));        
}

С этим кодом для событий OnNavigatedTo и OnNavigatingFrom ...

protected override void OnNavigatedTo(PhoneNavigationEventArgs e)
{
    PageTransition_In.Begin();
}

// //

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
    PageTransition_Out.Begin();

    base.OnNavigatingFrom(e);
}

У меня такое ощущение, что OnNavigatingFrom может (пока) не поддерживаться для приложений Windows Phone. OnNavigatedFrom является частью Microsoft.Phone.Navigation, но он выполняет действия только после того, как страница перестает быть активной, что слишком поздно для выполнения каких-либо эффектов анимации.

Ответы [ 3 ]

0 голосов
/ 22 июля 2010

Ваш подход не совсем корректен.Вместо этого лучше изменить рамку страницы, чтобы знать, как выполнять переходы между страницами.Вы можете увидеть хорошие примеры этого на канале 9 vid или на блоге Ави Пилософа .

Пример:

<ControlTemplate x:Key="TransitioningFrame" TargetType="navigation:PhoneApplicationFrame">
  <Border>
    <toolkit:TransitioningContentControl
        Content="{TemplateBinding Content}" Transition="DownTransition" />
  </Border>
</ControlTemplate>
0 голосов
/ 30 июля 2010

Я сбит с толку, почему нам нужно накатить свои плавные переходы для WinPhone7, но это так. Джефф Брэнд ( SlickThought.net ), похоже, пока что является лучшим решением. Вот хорошая статья с пошаговым видео и примером кода, хотя его пример кода в статье относится к апрельской CTP и, похоже, не работает в бета-инструментах.

0 голосов
/ 21 марта 2010

Я считаю, что вам нужно добавить событие, которое фиксирует завершение перехода. Ознакомьтесь с демонстрацией, которую Microsoft предоставляет для представления в виде списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...