silverlight
发布时间:2022-05-03 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight & Blend动画设计系列二:旋转动画(RotateTransform),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
概述
Silverlight的基础动画包括偏移、旋转、缩放、倾斜和翻转动画,这些基础动画毫无疑问是在Silverlight中使用得最多的动画效果,其使用也是非常简单的。相信看过上一篇《 偏移动画(TranslateTransform)》文章的朋友大多数对Silverlight & Blend动画设计已经产生了莫大的兴趣,本篇将继续介绍Silverlight中的基础动画之旋转动画(RotateTran
Silverlight的基础动画
包括偏移、旋转、缩放、倾斜和翻转动画,这些基础动画毫无疑问是在Silverlight中使用得最多的动画
效果,其使用也是非常简单的。相信看过
上一篇《
偏移动画(TranslateTransform)》@L_
801_3@的朋友大多数对Silverlight & Blend动画设计已经产生了莫大的兴趣,本篇将继续介绍Silverlight中的基础动画之旋转动画(RotateTransform)。
所谓旋转动画(RotateTransform)也就是
一个元素以
一个坐标点为旋转中心点旋转,在使用旋转动画(RotateTransform)的时候
需要注意的有两点:
旋转中心点(Center)和
旋转角度(AnglE)。同样当我们设计好动画元素后要
为其创建动画
效果,首先得
添加动画容器时间线(Storyboard),直接在Blend设计界面既可完成该操作。如下图所示:
当动画容器时间线创建好后,只需要选中需要进行创建动画的元素,然后再
属性面板下进行可视化
属性设置就可以完成动画的创建,转到“转换”
属性面板,然后选择“旋转”,可以看到如下图所示的
属性设置面板。
如上图示,将动画旋转角度(Angl
E)设置为了360,这表示动画作用元素将以旋转中心坐标进行旋转360度。此时切换到XAML编码视图可以发现Blend
自动生成了如下动画
代码块:
<
Storyboard
@H_
404_47@x:Name
="Storyboard1"
>
<
DoubleAnimationUsingKeyFrames
@H_
404_47@BeginTime
="00:00:00"
@H_
404_47@ Storyboard.TargetName
="fan"
@H_
404_47@
Storyboard.TargetProperty
="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.AnglE)"
>
<
EasingDoubleKeyFrame
@H_
404_47@KeyTime
="00:00:01"
@H_
404_47@ Value
="360"
/>
</
DoubleAnimationUsingKeyFrames
>
</
Storyboard
>
执行这个旋转动画可以看到
效果,名为“fan”的元素将在一秒钟内旋转360度。同样也可以通过编程的方式来动态的创建该旋转动画,详细如下
代码块:
private
void
CreateStoryboard()
{
//
创建动画容器时间线
Storyboard storyboard
=
new
Storyboard();
//
创建旋转动画
DoubleAnimation doubleAnimation
=
new
DoubleAnimation();
doubleAnimation.To
=
360
;
doubleAnimation.Duration
=
new
Duration(
new
TimeSpan(
0
,
0
,
1
));
Storyboard.SetTarget(doubleAnimation, fan);
Storyboard.SetTargetProperty(doubleAnimation,
new
PropertyPath(
"
(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.AnglE)
"
));
storyboard.Children.Add(doubleAnimation);
storyboard.begin();
}
或许有人会问,旋转动画我该怎么去用,什么样的场景适合使用旋转动画?其实很多地方都可以使用旋转动画,比如游戏中的地图场景中的风车,实际上也就是
一个旋转动画
效果,旋转动画下面是一条线作为风车的柱子。我们直接
在本文的示例
项目中加入一条竖线,线的一端对应于旋转动画的中心,通过Blend设计后动态
生成的XAML编码如下:
<
Canvas
@H_
404_47@Canva
s.ZIndex
="-1"
@H_
404_47@ x:Name
="Line"
>
<
Path
@H_
404_47@x:Name
="path"
@H_
404_47@ Stretch
="Fill"
@H_
404_47@
stroke
="Black"
@H_
404_47@ Height
="194.494"
@H_
404_47@ Width
="1"
@H_
404_47@ UseLayoutRounding
="false"
@H_
404_47@
Canva
s.Left
="303"
@H_
404_47@ Canva
s.Top
="184"
@H_
404_47@ Data
="M408,256 L408,449.49417"
@H_
404_47@
strokeThick
ness
="6"
@H_
404_47@ Opacity
="0.78"
@H_
404_47@
strokeStartLineCap
="Round"
@H_
404_47@
strokeEndLineCap
="Round"
>
<
Path.Fill
>
<
LinearGradientBrush
@H_
404_47@EndPoint
="0.5,1"
@H_
404_47@ StartPoint
="0.5,0"
>
<
GradientStop
@H_
404_47@Color
="#FFBA6161"
@H_
404_47@ Offset
="0"
/>
<
GradientStop
@H_
404_47@Color
="#FF306C0A"
@H_
404_47@ Offset
="1"
/>
</
LinearGradientBrush
>
</
Path.Fill
>
</
Path
>
</
Canvas
>
注意上面设置ZIndex值是为了将线条呈现到旋转动画的后面去,这样给人一种旋转动画是在线条的一端不停的选择,看起就像是
一个风车在旋转一样,实际上就是一种视觉欺骗,记得我
一个做3D游戏开发的朋友给我说过,3D游戏里的大多数
效果全都是视觉欺骗,嘎嘎~~~~~~~~~~,OK,现在运行动画的
效果则如下截图:
这样的
效果貌似不好看,我们可以
为其他加入背景
图片进行装饰,根据背景
图片进行调整适当的位置、元素颜色、形状等,以更为真实的
效果呈现在
用户面前。具体的调整过程这里就不作过多的介绍,给个上了背景的截图演示下吧:
推荐资源:
《Function Silverlight 3 Animation》----本篇中使用的示例素材选自此书
大佬总结
以上是大佬教程为你收集整理的Silverlight & Blend动画设计系列二:旋转动画(RotateTransform)全部内容,希望文章能够帮你解决Silverlight & Blend动画设计系列二:旋转动画(RotateTransform)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。