silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight动画设计中对平移动画的一点体会大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

       最近在用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动画设计中对平移动画的一点体会所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。