ControlTemplate
我创建的for遇到了问题ToggleButton
。
当按钮为Checked
时,ColorAnimation
触发 a 并且控件的背景改变颜色。但是,如果用户进入该MouseOver
状态,则会触发另一个动画,该动画也会影响按钮的背景。
当鼠标不再处于该MouseOver
状态时,控件不会返回到它处于该状态时应具有的颜色Checked
。我不确定为什么在MouseOver
触发状态时这种情况不会持续存在。
我的VisualStateManager
部分ControlTemplate
看起来是这样的:
<VisualStateManger.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"></VisualState>
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="BackgroundBorder"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
To="Gold" Duration="0:0:0.3" />
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="CheckedStates">
<VisualState x:Name="Checked">
<Storyboard>
<ColorAnimation Storyboard.TargetName="BackgroundBorder"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
To="PaleGoldenrod" Duration="0:0:0.3" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>