WPF的动画(1)基本动画
2010-07-22 16:28 Clingingboy 阅读(1550) 评论(0) 编辑 收藏 举报虽然有msdn文档,但关于动画网上资料比较少。略写一下.
目标(实现元素宽度从50到100的动画效果)
<Rectangle Name="demoRectangle" Height="20" Width="100" Fill="Blue"> <Rectangle.Triggers> <EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetName="demoRectangle" Storyboard.TargetProperty="Width" From="50" To="100" Duration="0:0:1" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Rectangle.Triggers> </Rectangle>
以下为步骤
一.根据需要修改的值创建相关的Animation
<DoubleAnimation From="50" To="100" Duration="0:0:1" />
From,To表示开始和结束的值,Duration表示动画时间,Animation本身不知道要修改某个属性
二.创建Storyboard
Animation无法单独使用,需要以Storyboard为容器,比如我要同时修改Width和Height,那么单独的Animation就不行了(不过很多情况下都是改一个属性的了,所以还不是很方便),可以理解为一个整体的动画板
<Storyboard> <DoubleAnimation From="50" To="100" Duration="0:0:1" /> </Storyboard>
三.指定动画要改动的对象和属性
<Storyboard> <DoubleAnimation Storyboard.TargetName="demoRectangle" Storyboard.TargetProperty="Width" From="50" To="100" Duration="0:0:1" /> </Storyboard>
用附加属性Storyboard.TargetName和Storyboard.TargetProperty来指定(事实上如果指定了TargetName和TargetProperty那么这个DoubleAnimation的灵活
度也不高了,而且必须为元素定义一个Name,都比较麻烦)
四.用BeginStoryboard执行Storyboard
从名字上看,两个很像.事实上Storyboard与BeginStoryboard没有关系.
BeginStoryboard是一个TriggerAction,在事件触发实行执行某个Storyboard,BeginStoryboard需要定义在EventTrigger里面
<EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown"> <BeginStoryboard> <Storyboard> … </Storyboard> </BeginStoryboard> </EventTrigger>
其实用Blend可以很方便的实现一个动画,其会自动帮你创建跟属性有关的Animation。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现