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