您可以在Style或ControlTemplate中包含的Storyboard中使用DynamicResource吗?

cpl*_*tts 13 wpf animation

我试图在ControlTemplate中包含的Storyboard中使用DynamicResource.

但是,当我尝试这样做时,我得到一个'无法冻结此Storyboard时间轴树以供跨线程使用'错误.

这里发生了什么?

cpl*_*tts 29

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

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

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

对于解决方法(至少在我的场景中),请参阅:WPF Forum Post.

希望这有助于某人.我已经失去了足够多的头发.

科里

  • 哇,这真的很糟糕,但感谢至少解释原因. (2认同)