我正在使用nov 11 silverlight工具包,我只是复制粘贴了基本的过渡,为我的应用程序添加了一些功能而没有做太多工作。我指的是这段代码:
<!--some really simple basic navigation animations to get us started-->
<toolkit:TransitionService.NavigationInTransition>
<toolkit:NavigationInTransition>
<toolkit:NavigationInTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardIn"/>
</toolkit:NavigationInTransition.Backward>
<toolkit:NavigationInTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardIn"/>
</toolkit:NavigationInTransition.Forward>
</toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
<toolkit:NavigationOutTransition>
<toolkit:NavigationOutTransition.Backward>
<toolkit:TurnstileTransition Mode="BackwardOut"/>
</toolkit:NavigationOutTransition.Backward>
<toolkit:NavigationOutTransition.Forward>
<toolkit:TurnstileTransition Mode="ForwardOut"/>
</toolkit:NavigationOutTransition.Forward>
</toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>
这很好用,除非我在逻辑删除后重新激活应用程序。似乎过渡中途停止了。应用程序保持响应,但看起来完全搞砸了。像这样:
有谁知道如何解决这个问题?我认为它可能与我的viewmodel有关,并且它在转换期间被填充......所以如果是这样的话,是否有一个事件我可以在转换完成时订阅?然后我可以在我的viewmodel中取消对属性更改事件的解除。但是,当我只是在我的应用程序中导航时,过渡效果非常好,所以可能不是它。
非常感谢任何想法。
答案 0 :(得分:1)
试试此代码:http://blog.rsuter.com/?p=74
您可以在App.xaml
中定义多个转场:
<Application.Resources>
<ResourceDictionary>
<Style x:Key="Transition" TargetType="phone:PhoneApplicationPage">
...
</Style>
<Style x:Key="Transition2" TargetType="phone:PhoneApplicationPage">
...
</Style>
<Style x:Key="Transition3" TargetType="phone:PhoneApplicationPage">
...
</Style>
</ResourceDictionary>
</Application.Resources>
并为每个页面设置转换:
第1页:
<phone:PhoneApplicationPage ... Style="{StaticResource Transition}">
在第2页:
<phone:PhoneApplicationPage ... Style="{StaticResource Transition2}">
在第3页:
<phone:PhoneApplicationPage ... Style="{StaticResource Transition3}">
您是否尝试过将资源声明移至页面?
这样的事情:
<phone:PhoneApplicationPage x:Name="MyPage">
<phone:PhoneApplicationPage.Resources>
<Style x:Key="LocalTransition">
...
</Style>
</phone:PhoneApplicationPage.Resources>
</phone:PhoneApplicationPage>
C#代码背后:
public class MyPage
{
public MyPage()
{
InitializeComponent();
Style = (Style)Resources["LocalTransition"];
}
}