图像旋转为动画

use*_*640 1 windows-8 visual-studio-2012

我正在使用visual studio 2012 c#制作Windows 8应用程序.我有一个图像'1.png',我想以任何角度旋转它作为沿其中心点的动画.但我希望借助c#代码而不是XAML代码来实现.

先感谢您.

Sha*_*ish 8

在您的XAML中,有以下图像:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Image Source="/Assets/Logo.png" Width="300" RenderTransformOrigin="0.5, 0.5">
        <Image.RenderTransform>
            <RotateTransform x:Name="rotateTransform"/>
        </Image.RenderTransform>
    </Image>
</Grid>
Run Code Online (Sandbox Code Playgroud)

然后,在代码中,在想要设置动画时编写以下内容(以Storyboard编程方式创建,然后向其添加相关内容Timeline.请注意,RotateTransform如果需要,还可以创建代码.

    async void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        await Task.Delay(500);

        Storyboard board = new Storyboard();
        var timeline = new DoubleAnimationUsingKeyFrames();
        Storyboard.SetTarget(timeline, rotateTransform);
        Storyboard.SetTargetProperty(timeline, "Angle");
        var frame = new EasingDoubleKeyFrame() { KeyTime = TimeSpan.FromSeconds(1), Value = 360, EasingFunction = new QuadraticEase() { EasingMode = EasingMode.EaseOut } };
        timeline.KeyFrames.Add(frame);
        board.Children.Add(timeline);

        board.Begin();
    }
Run Code Online (Sandbox Code Playgroud)

这会将对象旋转360度.

顺便说一句:我正在写一组帖子,展示更好的动画制作方法.它尚未完成,但它将为您提供有关如何为某些类型的动画获取框架的一般概念.

该系列的第一部分