大佬教程收集整理的这篇文章主要介绍了silverlight / wpf 旋转动画的实现,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有些时候我们需要让程序中某个元件按设定的方式旋转,如果是在普通的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,请注明来意。