动画旋转

本文介绍了WPF元素动画旋转的实现方法。先制作所需图片、图标等,通过DoubleAnimation指定开始值、结束值和变化时间。RotateTransform.Angle作用于动画属性,可设置旋转类型、围绕点、旋转方向等,还给出了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动画旋转,我们先给它制作一个我们想要的图片、图标、图案等,然后给他设置旋转的事件或属性等操作。DoubleAnimation指定它的开始值和结束值以及它由开始值到达结束值所需的时间,它是指变化的是数值。所有wpf元素,都是从UIElement基类开始。RotateTransform.Angle 作用于动画的属性,然后给他设置你想要或需要的类型。RotateTransform是旋转类型,我们可以设置它围绕某个点旋转,也可以在原地旋转,也可以设置他的旋转方向,是顺时针,还是逆时针旋转。

<Canvas Grid.Column="1">

            <Canvas.Triggers>

                <EventTrigger RoutedEvent="Canvas.Loaded">

                    <EventTrigger.Actions>

                        <BeginStoryboard>

                            <Storyboard x:Name="Storyboard2">

                                <!-- 动画作用于RotateTransform.Angle属性值-->

                                <DoubleAnimation Storyboard.TargetName="name1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" From="0" To="360" Duration="0:0:5" RepeatBehavior="Forever">

                                </DoubleAnimation>

                                <DoubleAnimation Storyboard.TargetName="name2" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" From="0" To="360" Duration="0:0:5" RepeatBehavior="Forever">

                                </DoubleAnimation>

                                <DoubleAnimation Storyboard.TargetName="name3" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" From="0" To="360" Duration="0:0:5" RepeatBehavior="Forever">

                                </DoubleAnimation>

                                <DoubleAnimation Storyboard.TargetName="name4" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" From="0" To="360" Duration="0:0:5" RepeatBehavior="Forever">

                                </DoubleAnimation>

                                <DoubleAnimation Storyboard.TargetName="name5" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" From="0" To="360" Duration="0:0:5" RepeatBehavior="Forever">

                                </DoubleAnimation>

                            </Storyboard>

                        </BeginStoryboard>

                    </EventTrigger.Actions>

                </EventTrigger>

            </Canvas.Triggers>

        </Canvas>

        <Polygon Grid.Column="1" Points="150,20 162,50 150,95 138,50" Fill="Red" Stroke="Red" StrokeThickness="5" x:Name="name1" RenderTransformOrigin="0.5,0.5">

            <Polygon.RenderTransform>

                <TransformGroup>

                    <ScaleTransform></ScaleTransform>

                    <SkewTransform></SkewTransform>

                    <RotateTransform></RotateTransform>

                    <TranslateTransform ></TranslateTransform>

                </TransformGroup>

            </Polygon.RenderTransform>

        </Polygon>

        <Polygon Grid.Column="1" Points="150,187 162,157 150,112 138,157" Fill="Orange" Stroke="Orange" StrokeThickness="5" x:Name="name2" RenderTransformOrigin="0.5,0.5">

            <Polygon.RenderTransform>

                <TransformGroup>

                    <ScaleTransform></ScaleTransform>

                    <SkewTransform></SkewTransform>

                    <RotateTransform></RotateTransform>

                    <TranslateTransform ></TranslateTransform>

                </TransformGroup>

            </Polygon.RenderTransform>

        </Polygon>

        <Polygon Grid.Column="1" Points="233,105 205,120 158,105 205,95" Fill="Yellow" Stroke="Yellow" StrokeThickness="5" x:Name="name3" RenderTransformOrigin="0.5,0.5">

            <Polygon.RenderTransform>

                <TransformGroup>

                    <ScaleTransform></ScaleTransform>

                    <SkewTransform></SkewTransform>

                    <RotateTransform></RotateTransform>

                    <TranslateTransform ></TranslateTransform>

                </TransformGroup>

            </Polygon.RenderTransform>

        </Polygon>

        <Polygon Grid.Column="1" Points="70,105 95,120 140,105 95,95" Fill="Green" Stroke="Green" StrokeThickness="5" x:Name="name4" RenderTransformOrigin="0.5,0.5">

            <Polygon.RenderTransform>

                <TransformGroup>

                    <ScaleTransform></ScaleTransform>

                    <SkewTransform></SkewTransform>

                    <RotateTransform></RotateTransform>

                    <TranslateTransform ></TranslateTransform>

                </TransformGroup>

            </Polygon.RenderTransform>

        </Polygon>

        <Polygon Grid.Column="1" Points="95,45 118,53 143,98 100,70" Fill="Cyan" Stroke="Cyan" StrokeThickness="5" x:Name="name5" RenderTransformOrigin="0.5,0.5">

            <Polygon.RenderTransform>

                <TransformGroup>

                    <ScaleTransform></ScaleTransform>

                    <SkewTransform></SkewTransform>

                    <RotateTransform></RotateTransform>

                    <TranslateTransform ></TranslateTransform>

                </TransformGroup>

            </Polygon.RenderTransform>

        </Polygon>

                                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值