Silverlight动画设计中对平移动画的一点体会

Silverlight动画设计中对平移动画的一点体会,第1张

概述       最近在用Silverlight设计一个图片展示的动画,做平移时最早使用DoubleAnimationUsingKeyFrames,但发现超出屏幕的部分居然被截取了,很是郁闷,于是改用ObjectAnimationUsingKeyFrames,但其离散点方式让动画显得十分生硬,百思不得其解,十分困惑。         今天再次打开项目,无意中发现将XAML文件中根控件从Grid改为Ca

       最近在用Silverlight设计一个图片展示的动画,做平移时最早使用DoubleAnimationUsingKeyFrames,但发现超出屏幕的部分居然被截取了,很是郁闷,于是改用ObjectAnimationUsingKeyFrames,但其离散点方式让动画显得十分生硬,百思不得其解,十分困惑。

        今天再次打开项目,无意中发现将XAML文件中根控件从GrID改为Canvas后,再次使用DoubleAnimationUsingKeyFrames,期望已久的动画效果出现了,好开心。记录下来,便于后者参考。

        程序代码粘贴如下:

        XAML

	<Canvas x:name="LayoutRoot" Background="Black" Cursor="Hand" 				MouseMove="OnMouseMove" MouseleftbuttonDown="OnMouseleftbuttonDown" 				MouseleftbuttonUp="OnMouseleftbuttonUp"					KeyDown="OnKeyDown">		<StackPanel x:name="imgScroll" Height="630" margin="0" 								MinWIDth="630" Cursor="Arrow">			<StackPanel.Rendertransform>				<Compositetransform>				</Compositetransform>			</StackPanel.Rendertransform>			<GrID x:name="imgContainer" margin="0" HorizontalAlignment="left" VerticalAlignment="Center">				<GrID.RowDeFinitions>					<RowDeFinition Height="10" />					<RowDeFinition Height="*" MinHeight="300" />					<!--<RowDeFinition Height="10" />-->					<RowDeFinition Height="*" MinHeight="300"/>					<RowDeFinition Height="10" />				</GrID.RowDeFinitions>			</GrID>		</StackPanel>	</Canvas>

        C#

			DoubleAnimationUsingKeyFrames dakf=new DoubleAnimationUsingKeyFrames();			Storyboard storyBoard = new Storyboard();			Storyboard.SetTarget(dakf,element);			Storyboard.SetTargetProperty(dakf,new PropertyPath("(UIElement.Rendertransform).(Compositetransform.TranslateX)"));						EasingDoubleKeyFrame edkf=new EasingDoubleKeyFrame();			edkf.KeyTime=TimeSpan.FromSeconds(1);			edkf.Value=OffsetX+ idis;			dakf.KeyFrames.Add(edkf);			OffsetX = idis;			storyBoard.Children.Add(dakf);			storyBoard.Begin();

        几点便捷方法:         1、如果不知道如何在后台设计动画,可打开Blend,设计好相关动画后,将自动生成的XAML语句中相应部分转化为C#即可;         2、设置类似Storyboard.SetTargetProperty(dakf,new PropertyPath("(UIElement.Rendertransform).(Compositetransform.TranslateX)"));语句,出现无法解析的错误是,考虑在对应的XAML语句中添加Rendertransform、Compositetransform即可。

总结

以上是内存溢出为你收集整理的Silverlight动画设计中对平移动画的一点体会全部内容,希望文章能够帮你解决Silverlight动画设计中对平移动画的一点体会所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1064267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存