0

我希望停止使用 DispatcherTimer 来显示动画,因为这是非常不可预测的。相反,我想开始使用 Storyboard,因为这显然是动画控件的最佳和最有效的方式。

我曾尝试搜索教程,但不幸的是,我还没有偶然发现一个。

谁能告诉我从哪里开始?例如,“在屏幕上移动图像”,然后“在旋转图像的同时同时移动许多图像”。

4

1 回答 1

1

有很多关于 windows phone 7 中 Storyboard 动画的信息。这里有几个链接:

http://msdn.microsoft.com/en-us/library/system.windows.media.animation.storyboard(v=vs.95).aspx

http://www.silverlight.net/learn/creating-ui/animation-and-easing/animations-(silverlight-quickstart )

这是一些帮助您入门的代码

这将为一个简单的矩形设置动画,在屏幕上来回移动它。

<phone:PhoneApplicationPage 
    x:Class="PhoneApp1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">

    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Rectangle x:Name="rect" Height="25" Width="25" Fill="Red" HorizontalAlignment="Left" VerticalAlignment="Top">
                <Rectangle.RenderTransform>
                    <TranslateTransform x:Name="transform" />
                </Rectangle.RenderTransform>
                <Rectangle.Triggers>
                    <EventTrigger RoutedEvent="Rectangle.Loaded">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation
                                    Storyboard.TargetName="transform"
                                    Storyboard.TargetProperty="X"
                                    From="0" To="100" Duration="0:0:1" AutoReverse="True" RepeatBehavior="Forever" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Rectangle.Triggers>
            </Rectangle>
        </Grid>
    </Grid>


</phone:PhoneApplicationPage>
于 2012-06-19T20:27:59.013 回答