WPF使用动画来移动组件

时间:2013-06-14 02:31:21

标签: c# .net wpf animation

我只有C / C ++的经验,只是转到C#和WPF。我想创建一个动画来移动组件(例如图像),但我不知道为什么以下是非法的:

ThicknessAnimation a = new ThicknessAnimation(...);

Image1.BeginAnimation(Image1.Margin, a); // illegal. Image.Margin illegal too

这似乎不能在这里使用保证金。当然创建一个计时器并为手动创建厚度对象手动可以工作,但这将是沉闷的,如果可以动画,它将更优雅。

这里需要故事板吗?我听说有人说创建一个故事板,你可以使用Margin属性,但我根本不知道故事板,也无法理解。感谢

1 个答案:

答案 0 :(得分:3)

您可以为依赖项属性设置动画,而不是常规属性,因此请尝试使用Image.MarginProperty。

这些是您要定位的类型或基本类型中的静态字段。

public static readonly DependencyProperty MarginProperty

在您的情况下,它在FrameworkElement中定义。

参考文献:

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.marginproperty.aspx

http://msdn.microsoft.com/en-us/library/ms590761.aspx

对于更复杂的动画,您需要一个故事板:

通过Storyboard对象,您可以将影响各种对象和属性的时间轴组合到一个时间轴树中,从而轻松组织和控制复杂的计时行为。

http://msdn.microsoft.com/en-us/library/ms742868.aspx

编辑:

在查看Intellisense时,您可以看到关联的依赖属性位于传统属性之下。

enter image description here

我之前提到你必须使用Image.MarginProperty,但实际上你可以忽略'Image'。部分因为对象确实已经从该基类型继承,比如动画'this':

enter image description here