tags:

views:

738

answers:

1

I am trying to use a DynamicResource in Storyboard contained within a ControlTemplate.

But, when I try to do this, I get a 'Cannot freeze this Storyboard timeline tree for use across threads' error.

What is going on here?

+2  A: 

No, you can't use a DynamicResource in a Storyboard that is contained within a Style or ControlTemplate. In fact, you can't use a data binding expression either.

The story here is that everything within a Style or ControlTemplate must be safe for use across threads and the timing system actually tries to freeze the Style or ControlTemplate to make them thread-safe. However, if a DynamicResource or data binding expression is present, it is unable to freeze them.

For more info see: MSDN Link. Check out the 'Animate in a Style' and the 'Animate in a ControlTemplate' sections (this documentation page is rather long).

And for a workaround (at least for my scenario) see: WPF Forum Post.

Hope this helps someone. I've lost more than enough hair on it.

Cory

cplotts
Wow, this sucks really much, but thanks for at least explaining why.
Tomáš Kafka