silverlightwpf 旋转动画的实现

silverlightwpf 旋转动画的实现,第1张

概述  有些时候我们需要让程序中某个元件按设定的方式旋转,如果是在普通的WinFrom 程序中这样的实现会需要大量的代码来控制线程,和计算变换的角度。   但是在 silverlight / wpf 中旋转的实现就变的极其的简单,让我们一起开始这个简单的过程。   1:首先我们需要确定一个旋转的目标(image)当然其他元件也可     <Image  x:Name="DesignerHead"  R

  有些时候我们需要让程序中某个元件按设定的方式旋转,如果是在普通的WinFrom 程序中这样的实现会需要大量的代码来控制线程,和计算变换的角度。

  但是在 silverlight / wpf 中旋转的实现就变的极其的简单,让我们一起开始这个简单的过程。

  1:首先我们需要确定一个旋转的目标(image)当然其他元件也可

    <Image  x:name="Designerhead"  RendertransformOrigin="0.4,0.5" Source="image/Designerhead.png" Stretch="Fill" WIDth="73" Height="41" HorizontalAlignment="left" margin="12,12,0" VerticalAlignment="top">
            <Image.Rendertransform>
                <transformGroup>
                    <Scaletransform ScaleX="1" ScaleY="1"  />
                </transformGroup>
            </Image.Rendertransform>
    </Image>

 

  2:定义动画行为方式 说明:指定目标“Designerhead” 元件的 "Scaletransform.ScaleX" 属性在2秒内 值从1 按时间线逐步变化到 -1 在由 -1逐步变化到 1 整个过程 为2秒,并始终重复该动画过程(RepeatBehavior="Forever" )

  <Storyboard x:Key="LoadheadStoryboard">
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"   Duration="00:00:02" RepeatBehavior="Forever"  Storyboard.Targetname="Designerhead" Storyboard.TargetProperty="(UIElement.Rendertransform).(transformGroup.Children)[0].(Scaletransform.ScaleX)">
                <SplineDoubleKeyFrame   Value="1"/>
                <SplineDoubleKeyFrame    Value="-1"/>
                <SplineDoubleKeyFrame    Value="1"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>

  3: 制定动画的触发方式(事件触发)

    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource LoadheadStoryboard}"/>
        </EventTrigger>

 

 整个xaml代码如下:

    <Window.Resources>
        <Storyboard x:Key="LoadheadStoryboard">
            <DoubleAnimationUsingKeyFrames BeginTime="00:00:00"   Duration="00:00:02" RepeatBehavior="Forever"  Storyboard.Targetname="Designerhead" Storyboard.TargetProperty="(UIElement.Rendertransform).(transformGroup.Children)[0].(Scaletransform.ScaleX)">
                <SplineDoubleKeyFrame   Value="1"/>
                <SplineDoubleKeyFrame    Value="-1"/>
                <SplineDoubleKeyFrame    Value="1"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
    </Window.Resources>
    <Window.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded">
            <BeginStoryboard Storyboard="{StaticResource LoadheadStoryboard}"/>
        </EventTrigger>
    </Window.Triggers>
    <GrID>
        <GrID.Background>
            <ImageBrush ImageSource="image/DesignerLoad.png">
            </ImageBrush>
        </GrID.Background>
        <Image  x:name="Designerhead"  RendertransformOrigin="0.4,0" VerticalAlignment="top">
            <Image.Rendertransform>
                <transformGroup>
                    <Scaletransform ScaleX="1" ScaleY="1"  />
                </transformGroup>
            </Image.Rendertransform>
        </Image>
        <Label HorizontalAlignment="left" margin="21,141,0" name="label1" WIDth="120" Foreground="White" Height="28" VerticalAlignment="top">Loading.......</Label>
        <Progressbar Height="16" HorizontalAlignment="left" margin="50,167,0" name="progressbar1" VerticalAlignment="top" WIDth="185" IsIndeterminate="True" />
    </GrID>

 

 

 该代码为wpf 实现。

 silverlight 中需要做稍微的调整。

总结

以上是内存溢出为你收集整理的silverlight / wpf 旋转动画的实现全部内容,希望文章能够帮你解决silverlight / wpf 旋转动画的实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1030383.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存