WP7如何使用工具包TransitionFrame?

Sam*_*Sam 4 transitions windows-phone-7

我已经下载了最新的Windows.Phone.Controls.Toolkit并在app.xaml.cs中更改了

RootFrame = new PhoneApplicationFrame();
Run Code Online (Sandbox Code Playgroud)

RootFrame = new TransitionFrame();
Run Code Online (Sandbox Code Playgroud)

我预计页面之间的转换会发生一些变化,但一切都没有发生.

我是否需要做更多的事情来实现更有趣的过渡?

Mia*_*Mia 8

你必须添加参考 xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

并通过添加以下命令尝试Turnstile效果:

<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>
Run Code Online (Sandbox Code Playgroud)

到每个页面你想要有过渡效果.

或者您可以尝试其他效果,例如:滑动,旋转,旋转和滚动.


kam*_*cus 5

后人:

如果您不想为每个页面编写所有XAML,请创建一个辅助类并在页面的构造函数中应用过渡.

Transitions.cs

public class Transitions {

    /// <summary>
    /// Set the Turnstile transition for this UIElement
    /// </summary>
    /// <param name="element"></param>
    public static void UseTurnstileTransition(UIElement element)
    {
        TransitionService.SetNavigationInTransition(element,
            new NavigationInTransition() {
                Backward = new TurnstileTransition() {
                    Mode = TurnstileTransitionMode.BackwardIn
                },
                Forward = new TurnstileTransition() {
                    Mode = TurnstileTransitionMode.ForwardIn
                }
            }
        );

        TransitionService.SetNavigationOutTransition(element,
            new NavigationOutTransition() {
                Backward = new TurnstileTransition() {
                    Mode = TurnstileTransitionMode.BackwardOut
                },
                Forward = new TurnstileTransition() {
                    Mode = TurnstileTransitionMode.ForwardOut
                }
            }
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

ExamplePage.xaml.cs

public partial class ExamplePage : PhoneApplicationPage {
    public ExamplePage() {
        InitializeComponent();

        Transitions.UseTurnstileTransition(this);
    }
}
Run Code Online (Sandbox Code Playgroud)