为什么SetTarget是Storyboard的静态方法

时间:2015-05-14 10:56:03

标签: c# .net silverlight

我想知道MS类(故事板)和相关课程中的一个细节 - 时间轴。

以下是这些课程的文档:

根据MS文档在时间轴上设置目标,我们需要使用Storyboard静态方法。为什么会这样?有谁知道这个决定的背景?

有关时间轴目标的信息存储在哪里?在Storyboard静态字段中?在Storyboard对象中是时间轴父级?在时间轴的私人领域?

如果您有关于此实施的任何信息,请提前感谢,因为我想知道他们是否有理由采取这种行动。

1 个答案:

答案 0 :(得分:3)

当我遇到Silverlight / WPF时,静态方法的使用最初让我感动。数据实际存储在时间轴上,而不是其他地方,但为什么是静态方法,而不仅仅是Timeline对象本身的方法?

原因是:大多数WPF / Silverlight元素都有很多属性:背景,字体,笔触粗细等。如果以常规方式实现它们,这些将消耗大量内存。

相反,Silverlight / WPF引入了DependencyProperties的概念。这些是可以在DepedencyObject上设置的属性。如果未设置它们,则将获得默认值,并且不使用其他内存。 SetValue(ThePropertyName, value)GetValue(ThePropertyName)通常用于设置和检索依赖项属性值。

此外,有一个名为AttachedProperty的想法。附加属性是由第三方定义的属性,可以附加到DependencyObject。这类似于Visual Basic中的属性扩展程序。它允许针对现有元素定义其他属性。故事板动画以这种方式实现。

相关问题