【问题标题】:Can You Use A DynamicResource in a Storyboard Contained Within Style Or ControlTemplate您可以在样式或 ControlTemplate 中包含的情节提要中使用 DynamicResource
【发布时间】:2010-09-14 07:54:18
【问题描述】:

我正在尝试使用包含在 ControlTemplate 中的 Storyboard 中的 DynamicResource。

但是,当我尝试执行此操作时,出现“无法冻结此 Storyboard 时间线树以供跨线程使用”错误。

这是怎么回事?

【问题讨论】:

    标签: wpf animation


    【解决方案1】:

    不,您不能在 Storyboard 中使用包含在 Style 或 ControlTemplate 中的 DynamicResource。事实上,你也不能使用数据绑定表达式。

    这里的故事是 Style 或 ControlTemplate 中的所有内容都必须安全地跨线程使用,并且计时系统实际上会尝试冻结 Style 或 ControlTemplate 以使其成为线程安全的。但是,如果存在 DynamicResource 或数据绑定表达式,则无法冻结它们。

    有关详细信息,请参阅:MSDN Link。查看“样式中的动画”和“ControlTemplate 中的动画”部分(此文档页面相当长)。

    有关解决方法(至少对于我的方案),请参阅:WPF Forum Post

    希望这对某人有所帮助。我已经失去了足够多的头发。

    科里

    【讨论】:

    • 哇,这真的很糟糕,但感谢您至少解释了原因。
    【解决方案2】:

    在某些情况下,有一种解决方法:

    • 引入附加属性,
    • 使用所需的 setter 为引入的属性指定样式触发器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 2013-11-13
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      相关资源
      最近更新 更多