我有VisualStateManager
来控制状态何时发生,控件已启用:
这是州(字符串)的属性:
states:StateManager.VisualStateProperty="{Binding SomeProp}"
此处为VisualStateManager
:
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="MyName">
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.IsEnabled)" Storyboard.TargetName="MyTextBox">
<DiscreteBooleanKeyFrame KeyTime="0" Value="True" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="HerName">
<Storyboard>
...
</Storyboard>
</VisualState>
<VisualState x:Name="This">
<Storyboard>
...
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
这是我的文本框:
<TextBox Name="MyTextBox" />
我的问题是:当我将TextBox添加到以下行时会发生什么:
IsEnable= {Binding isProp}// isProp = bool
我看到它的方式,它消除了IsEnable
的{{1}}而没有引用他,只引用TextBox
。
这是真的吗?他们都有办法吗?
答案 0 :(得分:3)
在您的情况下,动画将优先于绑定,但只有动画的时间轴正在运行。也就是说,当视觉状态为“MyName”时,动画将控制IsEnabled属性;否则,绑定将会。
您可能对此Dependency Property Value Precedence列表感兴趣。绑定计为“本地值”,优先级低于动画。