Windows Phone 7 导航动画

4

我正在尝试在离开页面时进行动画,但是出现了以下错误:

无法解析指定对象上的TargetProperty(UIElement.RenderTransform).(CompositeTransform.TranslateX)。

我从一本书中复制了代码,并测试了该书的示例代码,它可以正常工作,但我无法让其在我的应用程序上运行。有什么建议吗?这是我的代码:

XAML:

<phone:PhoneApplicationPage.Resources>
        <Storyboard x:Name="HidePage" Completed="HidePage_Completed">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="phoneApplicationPage">
                <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:1" Value="-480"/>
            </DoubleAnimationUsingKeyFrames>
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="phoneApplicationPage">
                <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:1" Value="-800"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
<phone:PhoneApplicationPage.Resources>

C#

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
    base.OnNavigatingFrom(e);

    if (this.UriToNavigateTo == null)
    {
        e.Cancel = true;
        UriToNavigateTo = e.Uri;
        this.HidePage.Begin();
    }
    else
    {
        UriToNavigateTo = null;
    }
}

谢谢!


@lukas 现在已经有了,谢谢。 - Carlo
2个回答

6

银光工具包现在已经包含使用TransitionFrame控件为Windows Phone 7页面提供动画效果的功能。您可以在这里了解更多信息:链接

基本上,它的工作原理是通过在App.xaml.cs中将RootFrame设置为TransitionFrame:

RootFrame = new TransitionFrame();

然后为每个页面设置导航转换:

<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>
这段代码是用于编程的相关内容,它定义了页面过渡动画的转换效果。其中包含了向前和向后的转换效果。

一定会去看看。谢谢你提供的信息! - Carlo
我尝试过这个,但在模拟器中没有任何效果。 - Nick Heiner

3

您忘记设置CompositeTransform对象,该对象定义了您使用的转换类型。

<phone:PhoneApplicationPage.RenderTransform>
    <CompositeTransform/>
</phone:PhoneApplicationPage.RenderTransform>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接