我有一个ComboBox
,其Opacity
属性具有以下绑定:
Opacity="{Binding ElementName=stackPanel, Path=IsMouseOver, Converter={StaticResource mouseOverConverter}}"
基本上,如果IsMouseOver
属性为true,则ComboBox
的{{1}}为1,否则为0.4。
现在我将此动画应用于Opacity
:
ComboBox
这很有效,但之后private void AnimateComboBox()
{
DoubleAnimation da = new DoubleAnimation();
da.From = 0.4;
da.To = 1;
da.Duration = TimeSpan.FromSeconds(0.8);
da.AutoReverse = true;
ComboClassList.BeginAnimation(ComboBox.OpacityProperty, da);
}
的绑定不再起作用了。当我将鼠标移到ComboBox
上时,Opacity
不会发生变化。为什么动画会破坏我的装订? Snoop说,绑定仍然存在,尽管它在Snoop中突出显示为红色。
答案 0 :(得分:6)
默认情况下,动画持有最终属性值。要更改它,请将其FillBehavior
属性设置为Stop
:
var animation = new DoubleAnimation
{
From = 0.4,
To = 1,
Duration = TimeSpan.FromSeconds(0.8),
AutoReverse = true,
FillBehavior = FillBehavior.Stop
};
当动画结束时,属性将被设置回绑定提供的值。