gpt4 book ai didi

c# - 动画打破绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:39 25 4
gpt4 key购买 nike

我有一个 ComboBox,其 Opacity 属性具有以下绑定(bind):

Opacity="{Binding ElementName=stackPanel, Path=IsMouseOver, Converter={StaticResource mouseOverConverter}}"

基本上,如果 IsMouseOver 属性为真,则 ComboBoxOpacity 为 1,否则为 0.4。

现在我将此动画应用到 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 的绑定(bind)就不再起作用了。当我将鼠标移到 StackPanel 上时,Opacity 没有改变。为什么动画会破坏我的绑定(bind)? Snoop 说,绑定(bind)仍然存在,尽管它在 Snoop 中以红色突出显示。

最佳答案

动画默认保存最终的属性值。要更改它,请将其 FillBehavior 属性设置为 Stop:

var animation = new DoubleAnimation
{
From = 0.4,
To = 1,
Duration = TimeSpan.FromSeconds(0.8),
AutoReverse = true,
FillBehavior = FillBehavior.Stop
};

当动画结束时,该属性将被设置回绑定(bind)提供的值。

关于c# - 动画打破绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32839906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com