WPF小白,想做一个图片上移的动画效果

hjmzgw1990 2017-06-21 11:29:20
各位技术大大:
本人在网上找了一段代码http://www.cnblogs.com/MrLin0803/archive/2012/11/09/WPF_2.html,用来把图片进行一个位移。其中有两个个方法:folatY.TO = TransValueFromHeight(),以及floatX.TO不知道怎么调用,也不清楚是不是作者自己写的方法。
所以我直接写成了floatY.TO = top;

运行时发现报错:Cannot animate the "TOP" property on a 'SYSTEM.WINDOWS.CONTROL.IMAGE' using a 'System.Windows.Media.Animation.DoubleAnimation'

代码如下:添加了一个图片空间到窗体上,取名叫Power


public static void PowerStandBy(double top,double left,UIElement elem)
{
try
{
DoubleAnimation floatY = new DoubleAnimation();
floatY.Duration = new TimeSpan(0,0,0,1,0);
floatY.To = top;

DoubleAnimation floatX = new DoubleAnimation();
floatX.Duration = new TimeSpan(0,0,0,1,0);
floatX.To = top;

elem.BeginAnimation(Canvas.TopProperty,floatY);
elem.BeginAnimation(Canvas.LeftProperty,floatX);

}
}


private void Power_MouseEnter(object sender,MouseEventArgs e)
{
if(!PowerIsStandBy)
{
PowerStandBy(100,100,Power);
PowerStandBy = true;
}
}

...全文
1225 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
微恒软件 2017-08-10
  • 打赏
  • 举报
回复
from和to是一起用的,你这里只有to没有from能行吗,自己可以试试,或者用blend随便画一个就可以
only_youlix 2017-07-05
  • 打赏
  • 举报
回复
Storyboard sb = new Storyboard(); DoubleAnimation da = new DoubleAnimation(); da.Duration = new TimeSpan(0,0,5); da.To = 0; Storyboard.SetTarget(da,bor); Storyboard.SetTargetProperty(da,new PropertyPath("(Canvas.Top)")); sb.Children.Add(da); sb.Begin();
exception92 2017-06-21
  • 打赏
  • 举报
回复
没接触过动画就先自己做个例子,从网上找的代码不可靠,而且最后也不会学到什么。
exception92 2017-06-21
  • 打赏
  • 举报
回复
floatX.To = top; -》 floatX.From=某个值; floatX.To = left; elem.BeginAnimation(Canvas.TopProperty,floatY); elem.BeginAnimation(Canvas.LeftProperty,floatX); -》必须把你的Image放到Canvas面板里,并且设置Canvas.Top,Canvas.Left的值。

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧