1

我正在使用 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>

这很好用,除非我在应用程序被墓碑化后重新激活它。过渡似乎中途停止。该应用程序保持响应,但看起来完全一团糟。像这样:

这个截图

有谁知道如何解决这个问题?我认为这可能与我的视图模型有关,并且它在转换过程中被填充......所以如果是这种情况,当转换完成时我可以订阅一个事件吗?然后我可以在我的视图模型中取消抑制属性更改事件。但是当我只是在我的应用程序中导航时,过渡效果很好,所以可能不是这样。

任何想法将不胜感激。

4

1 回答 1

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"];
    }
}
于 2012-04-19T12:46:26.877 回答