【问题标题】:Why is SetTarget a static method of Storyboard为什么 SetTarget 是 Storyboard 的静态方法
【发布时间】:2015-05-14 10:56:03
【问题描述】:

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

以下是这些类的文档:

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

时间轴目标的信息存储在哪里?在故事板静态字段中?在 Storyboard 对象中作为 Timeline 父级?在时间轴的私有字段中?

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

【问题讨论】:

标签: c# .net silverlight


【解决方案1】:

当我遇到 Silverlight/WPF 时,我首先想到了静态方法的使用。数据实际上存储在 Timeline 上,而不是其他地方,但为什么是静态方法,而不仅仅是 Timeline 对象本身的方法呢?

原因是这样的:大多数 WPF/Silverlight 元素都有很多属性:背景、字体、笔画粗细等。如果按照常规方式实现,这些会消耗大量内存。

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

另外,还有一个想法叫做AttachedProperty。附加属性是由第三方定义的属性,可以附加到 DependencyObject。这类似于 Visual Basic 中的属性扩展器。它允许针对现有元素定义其他属性。故事板动画就是这样实现的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 2010-09-28
    • 2012-10-12
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多