Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# windows phone应用程序中的多个页面转换取决于目标页面_C#_Wpf_Xaml_Windows Phone - Fatal编程技术网

C# windows phone应用程序中的多个页面转换取决于目标页面

C# windows phone应用程序中的多个页面转换取决于目标页面,c#,wpf,xaml,windows-phone,C#,Wpf,Xaml,Windows Phone,如何在windows phone应用程序中根据导航到/从哪个页面实现多个页面转换 例如,我有主页、设置页面和详细信息页面。 我希望在进入/离开设置页面时转换为旋转,在进入/离开详细信息页面时转换为旋转栅门 如何才能做到这一点?这篇文章介绍了使用动画制作页面过渡和其他元素的各种方法 在文章的结尾,有一些例子说明了如何基于按钮点击来动态设置动画 1。定义动画 private void StartTransition() { RotateTransition rotatetransition

如何在windows phone应用程序中根据导航到/从哪个页面实现多个页面转换

例如,我有主页、设置页面和详细信息页面。 我希望在进入/离开设置页面时转换为旋转,在进入/离开详细信息页面时转换为旋转栅门

如何才能做到这一点?

这篇文章介绍了使用动画制作页面过渡和其他元素的各种方法

在文章的结尾,有一些例子说明了如何基于按钮点击来动态设置动画

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();
    }
}

有一个问题。。。我想根据导航到的uri而不是单击的按钮来更改转换。使用这种技术意味着我必须在每次单击按钮时调用StartTransition。这听起来不对,但如果没有更好的解决方案,我将不得不使用它。本文中的另一项技术是更改OnNavigatedTo和OnNavigatedFrom中的转换。我尝试过这个,但没有成功,这些方法是在转换初始化后调用的。您可以在
OnNavigatedFrom
中设置动画,查看
NavigationEventArgs
e.Uri.ToString()包含(“PageName”)