silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight / wpf 旋转动画的实现大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  有些时候我们需要让程序中某个元件按设定的方式旋转,如果是在普通的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 旋转动画的实现所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。