13

ControlTemplate に含まれる Storyboard で DynamicResource を使用しようとしています。

しかし、これを実行しようとすると、「スレッド全体で使用するために、このストーリーボード タイムライン ツリーをフリーズできません」というエラーが表示されます。

ここで何が起こっているのですか?

4

2 に答える 2

31

いいえ、Style または ControlTemplate に含まれる Storyboard で DynamicResource を使用することはできません。実際、データ バインディング式も使用できません。

ここでの話は、Style または ControlTemplate 内のすべてがスレッド間で安全に使用できる必要があり、タイミング システムは実際に Style または ControlTemplate をフリーズしてスレッド セーフにしようとするということです。ただし、DynamicResource またはデータ バインディング式が存在する場合、それらを凍結することはできません。

詳細については、MSDN リンクを参照してください。「スタイルでアニメーション化する」セクションと「ControlTemplate でアニメーション化する」セクションを確認してください (このドキュメント ページはかなり長いです)。

回避策については(少なくとも私のシナリオでは)、WPF Forum Postを参照してください。

これが誰かに役立つことを願っています。私はそれで十分以上の髪を失いました。

コーリー

于 2008-09-30T18:00:59.363 に答える