WPF image控件移动

Kylinone 2011-04-22 10:45:59
大家好,新手问题,希望帮忙看看:
我在窗口中添了一个Image控件,我想让它在窗口中,不停的左右移动。
我在for循环里把它的margin属性不停的增减,结果程序会出现未响应的状态,等到循环完了一下子就跳到了最后的位置。
请问如何解决?
...全文
521 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
丁心驿 2011-04-22
  • 打赏
  • 举报
回复
去试一试
Kylinone 2011-04-22
  • 打赏
  • 举报
回复
好的,谢谢
沝林 2011-04-22
  • 打赏
  • 举报
回复
不能像你这么做,你应该使用RenderTransform和动画来进行处理,上Google和百度搜一下,网上很多解决方案
Kylinone 2011-04-22
  • 打赏
  • 举报
回复
有人在么
Kylinone 2011-04-22
  • 打赏
  • 举报
回复
已解决了,
xAnimation.RepeatBehavior = new RepeatBehavior(1);

谢谢大家!
沝林 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 kylinone 的回复:]
引用 7 楼 duanzilin 的回复:
参考RepeatBehavior设置
<DoubleAnimation
Storyboard.TargetName="TwiceRepeatingRectangle"
Storyboard.TargetProperty="Width"
From="50" To="300" Duration="0:0:2" RepeatBehavior="2x"……
[/Quote]

xAnimation.RepeatBehavior = new System.Windows.Media.Animation.RepeatBehavior(2);
Kylinone 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 duanzilin 的回复:]
参考RepeatBehavior设置
<DoubleAnimation
Storyboard.TargetName="TwiceRepeatingRectangle"
Storyboard.TargetProperty="Width"
From="50" To="300" Duration="0:0:2" RepeatBehavior="2x" />
[/Quote]
这段代码如果改成C#的代码,应该怎么写?
DoubleAnimation xAnimation = new DoubleAnimation();
xAnimation.Duration = new Duration(TimeSpan.FromSeconds(60));//这里我怎么改为让它重复2次?
沝林 2011-04-22
  • 打赏
  • 举报
回复
参考RepeatBehavior设置


<!-- 创建一个无限循环的周期为2秒的动画. -->
<DoubleAnimation
Storyboard.TargetName="ForeverRepeatingRectangle"
Storyboard.TargetProperty="Width"
From="50" To="300" Duration="0:0:2" RepeatBehavior="Forever" />

<!-- 创建一个周期为2秒的动画,该动画4秒钟重复一次. -->
<DoubleAnimation
Storyboard.TargetName="FourSecondsRepeatingRectangle"
Storyboard.TargetProperty="Width"
From="50" To="300" Duration="0:0:2" RepeatBehavior="0:0:4" />

<!-- 创建一个周期为2秒的动画,重复执行2次. -->
<DoubleAnimation
Storyboard.TargetName="TwiceRepeatingRectangle"
Storyboard.TargetProperty="Width"
From="50" To="300" Duration="0:0:2" RepeatBehavior="2x" />

<!-- 创建一个周期为2秒的动画,仅执行一半,也就是执行1秒钟,To 150 -->
<DoubleAnimation
Storyboard.TargetName="HalfRepeatingRectangle"
Storyboard.TargetProperty="Width"
From="50" To="300" Duration="0:0:2" RepeatBehavior="0.5x" />

<!-- Create an animation that repeats for one second. The resulting animation
plays for one second, half of its Duration. It animates from 50 to 150. -->
<DoubleAnimation
Storyboard.TargetName="OneSecondRepeatingRectangle"
Storyboard.TargetProperty="Width"
From="50" To="300" Duration="0:0:2" RepeatBehavior="0:0:1" />
Kylinone 2011-04-22
  • 打赏
  • 举报
回复
帮忙 谢谢
Kylinone 2011-04-22
  • 打赏
  • 举报
回复
我用StoryBoard可以实现动画效果了,但是我想让动画只播放一次,怎么转换为C#代码?

Storyboard story = new Storyboard();
story.AutoReverse = true;
story.RepeatBehavior = RepeatBehavior.Forever; //我想让它只播放一次,怎么改?
story.Children.Add(xAnimation);

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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