どのページに移動するか、またはどのページから移動するかに応じて、Windows Phone アプリケーションで複数のページ遷移を実装するにはどうすればよいですか?
たとえば、メイン ページ、設定ページ、詳細ページがあります。設定ページに出入りするときはトランジションを回転させ、詳細ページに出入りするときは改札口にしたい。
どうやってやるの?
どのページに移動するか、またはどのページから移動するかに応じて、Windows Phone アプリケーションで複数のページ遷移を実装するにはどうすればよいですか?
たとえば、メイン ページ、設定ページ、詳細ページがあります。設定ページに出入りするときはトランジションを回転させ、詳細ページに出入りするときは改札口にしたい。
どうやってやるの?
このGeekChamp の記事では、 Windows Phone Toolkitを使用してページ遷移やその他の要素をアニメーション化するさまざまな方法について説明しています...
http://www.geekchamp.com/articles/windows-phone-7-navigation-transitions-step-by-step-guide
この記事の最後には、たとえばボタンのクリックに基づいてアニメーションを動的に設定する方法の例があります...
1. アニメーションを定義する
private void StartTransition()
{
RotateTransition rotatetransition = new RotateTransition();
rotatetransition.Mode = RotateTransitionMode.In90Clockwise;
PhoneApplicationPage phoneApplicationPage =
(PhoneApplicationPage)(((PhoneApplicationFrame)Application.Current.RootVisual)).Content;
ITransition transition = rotatetransition.GetTransition(phoneApplicationPage);
transition.Completed += delegate
{
transition.Stop();
};
transition.Begin();
}
2.ボタンクリックでアニメーションを呼び出す
private void btnRotate_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/Page2.xaml", UriKind.Relative));
StartTransition();
}
またはページ名に基づいて移動する場合
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
if (e.Uri.ToString().Contains("SlidePage"))
{
slideAnimation();
}
if (e.Uri.ToString().Contains("TurnstilePage"))
{
turnstileAnimation();
}
}