WPF 加载等待动画

6 篇文章 0 订阅
6 篇文章 0 订阅

 

效果图如下:(喜欢的点个赞)

 主要运用矩阵路径移动方法,不同小球设置不用加速度:(代码如下).可自行将路径由直线改为圆形.

<Viewbox>
        <Grid>
            <Grid.Resources>
                <PathGeometry Figures="M0,0 200,0" x:Key="path"/>
                <Style x:Key="EllipseStyle" TargetType="Ellipse">
                    <Setter Property="Width" Value="10"/>
                    <Setter Property="Height" Value="10"/>
                    <Setter Property="HorizontalAlignment" Value="Left"/>
                    <Setter Property="VerticalAlignment" Value="Top"/>
                    <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
                </Style>
            </Grid.Resources>
            <Ellipse   Fill="Red" Style="{StaticResource EllipseStyle}">
                <Ellipse.RenderTransform>
                    <MatrixTransform x:Name="MyTranslateTransform">
                        <MatrixTransform.Matrix>
                            <Matrix OffsetX="0" OffsetY="0" />
                        </MatrixTransform.Matrix>
                    </MatrixTransform>
                </Ellipse.RenderTransform>
                <Ellipse.Triggers>
                    <EventTrigger RoutedEvent="Loaded">
                        <BeginStoryboard>
                            <Storyboard >
                                <MatrixAnimationUsingPath Storyboard.TargetName="MyTranslateTransform"  AccelerationRatio="0.5"    IsAdditive="True" Duration="0:0:3" AutoReverse="True" RepeatBehavior="Forever" Storyboard.TargetProperty="Matrix" PathGeometry="{StaticResource path}"/>
                                <MatrixAnimationUsingPath Storyboard.TargetName="MyTranslateTransform1"  AccelerationRatio="0.3"   IsAdditive="True" Duration="0:0:3" AutoReverse="True" RepeatBehavior="Forever" Storyboard.TargetProperty="Matrix" PathGeometry="{StaticResource path}"/>
                                <MatrixAnimationUsingPath Storyboard.TargetName="MyTranslateTransform2"  AccelerationRatio="0.25"  IsAdditive="True" Duration="0:0:3" AutoReverse="True" RepeatBehavior="Forever" Storyboard.TargetProperty="Matrix" PathGeometry="{StaticResource path}"/>
                                <MatrixAnimationUsingPath Storyboard.TargetName="MyTranslateTransform3"  AccelerationRatio="0.2"   IsAdditive="True" Duration="0:0:3" AutoReverse="True" RepeatBehavior="Forever" Storyboard.TargetProperty="Matrix" PathGeometry="{StaticResource path}"/>
                                <MatrixAnimationUsingPath Storyboard.TargetName="MyTranslateTransform4"  AccelerationRatio="0"    IsAdditive="True" Duration="0:0:3" AutoReverse="True" RepeatBehavior="Forever" Storyboard.TargetProperty="Matrix" PathGeometry="{StaticResource path}"/>

                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Ellipse.Triggers>
            </Ellipse>
            <Ellipse Style="{StaticResource EllipseStyle}"  Fill="Green" > 
                <Ellipse.RenderTransform>
                    <MatrixTransform x:Name="MyTranslateTransform1">
                        <MatrixTransform.Matrix>
                            <Matrix OffsetX="10" OffsetY="0" />
                        </MatrixTransform.Matrix>
                    </MatrixTransform>
                </Ellipse.RenderTransform>
            </Ellipse>
            <Ellipse Style="{StaticResource EllipseStyle}"  Fill="Blue" >
                <Ellipse.Effect >
                    <DropShadowEffect Color="Transparent" BlurRadius="20" Direction="0" ShadowDepth="0"/>
                </Ellipse.Effect>
                <Ellipse.RenderTransform>
                    <MatrixTransform x:Name="MyTranslateTransform2">
                        <MatrixTransform.Matrix>
                            <Matrix OffsetX="20" OffsetY="0" />
                        </MatrixTransform.Matrix>
                    </MatrixTransform>
                </Ellipse.RenderTransform>
            </Ellipse>
            <Ellipse Style="{StaticResource EllipseStyle}"  Fill="Green" >
                <Ellipse.RenderTransform>
                    <MatrixTransform x:Name="MyTranslateTransform3">
                        <MatrixTransform.Matrix>
                            <Matrix OffsetX="30" OffsetY="0" />
                        </MatrixTransform.Matrix>
                    </MatrixTransform>
                </Ellipse.RenderTransform>
            </Ellipse>
            <Ellipse Style="{StaticResource EllipseStyle}"  Fill="Blue" >
                <Ellipse.RenderTransform>
                    <MatrixTransform x:Name="MyTranslateTransform4">
                        <MatrixTransform.Matrix>
                            <Matrix OffsetX="40" OffsetY="0" />
                        </MatrixTransform.Matrix>
                    </MatrixTransform>
                </Ellipse.RenderTransform>
            </Ellipse>
        </Grid>
    </Viewbox>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值