【发布时间】:2010-09-14 07:54:18
【问题描述】:
我正在尝试使用包含在 ControlTemplate 中的 Storyboard 中的 DynamicResource。
但是,当我尝试执行此操作时,出现“无法冻结此 Storyboard 时间线树以供跨线程使用”错误。
这是怎么回事?
【问题讨论】:
我正在尝试使用包含在 ControlTemplate 中的 Storyboard 中的 DynamicResource。
但是,当我尝试执行此操作时,出现“无法冻结此 Storyboard 时间线树以供跨线程使用”错误。
这是怎么回事?
【问题讨论】:
不,您不能在 Storyboard 中使用包含在 Style 或 ControlTemplate 中的 DynamicResource。事实上,你也不能使用数据绑定表达式。
这里的故事是 Style 或 ControlTemplate 中的所有内容都必须安全地跨线程使用,并且计时系统实际上会尝试冻结 Style 或 ControlTemplate 以使其成为线程安全的。但是,如果存在 DynamicResource 或数据绑定表达式,则无法冻结它们。
有关详细信息,请参阅:MSDN Link。查看“样式中的动画”和“ControlTemplate 中的动画”部分(此文档页面相当长)。
有关解决方法(至少对于我的方案),请参阅:WPF Forum Post。
希望这对某人有所帮助。我已经失去了足够多的头发。
科里
【讨论】:
在某些情况下,有一种解决方法:
【讨论】: