有些时候我们需要让程序中某个元件按设定的方式旋转,如果是在普通的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 旋转动画的实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)