【发布时间】:2011-03-31 00:19:59
【问题描述】:
给定一个由 VisualStateManager 启动的 Storyboard 作为 ControlTemplate 的一部分,我将如何根据控件的属性更改调整该动画的 SpeedRatio?
<ControlTemplate>
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState>
<Storyboard Name="SpinningThing"
SpeedRatio="{Binding SpinningSpeedRatio}">
...
这需要在 WPF 和 Silverlight 中都有效。
出于多种原因,我认为我不能在那里设置绑定。最重要的是,Storyboard 是可冻结的,因此您不能在 WPF 中随意设置 SpeedRatio。但是,如果它是由 VisualStateManager 启动的,我可以在上面调用 SetSpeedRatio 吗?
另外,由于它的父级是 VisualState,这是否意味着不存在与之相关的管理 FrameworkElement?
那么,如果我不能通过绑定来做到这一点,那该怎么做呢?
【问题讨论】:
标签: wpf silverlight data-binding animation visualstatemanager