【问题标题】:Control stops working after animating it控制动画后停止工作
【发布时间】:2012-05-23 11:42:12
【问题描述】:

我有一个名为 tbMaster 的滑块:

<Slider  Name="tbMaster"  Maximum="10000"  Value="{Binding SbVolumeValue}"/>

绑定属性的代码:

    double _SbVolumeValue;
    public double SbVolumeValue
    {
        get
        {
            return _SbVolumeValue;
        }
        set
        {
            _SbVolumeValue = value;
            OnPropertyChanged("SbVolumeValue");
        }
    }

我有故事板sbVolume

    <Storyboard x:Key="sbVolume">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(RangeBase.Value)" Storyboard.TargetName="tbMaster">
            <EasingDoubleKeyFrame KeyTime="0:0:1.2" Value="40">
                <EasingDoubleKeyFrame.EasingFunction>
                    <CircleEase EasingMode="EaseOut"/>
                </EasingDoubleKeyFrame.EasingFunction>
            </EasingDoubleKeyFrame>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

如果我运行应用程序,滑块效果很好。当我开始故事板时它停止工作:

 var sbVolume = this.FindResource("sbVolume") as Storyboard;
 sbVolume.Begin();

为什么在我制作动画后它停止工作?

【问题讨论】:

    标签: c# wpf xaml binding storyboard


    【解决方案1】:

    尝试将FillBehavior.Stop 添加到您的动画中。默认为FillBehavior.HoldEnd

    来自上面的链接:

    由于动画在其填充期间继续覆盖其目标属性的值,因此尝试通过其他方式设置目标属性的值可能看起来没有效果。有关显示如何在动画后设置属性值的示例,请参阅How to: Set a Property After Animating It with a Storyboard.

    【讨论】:

    • 谢谢,效果很好!动画完成后,滑块返回到它的起始位置。我想这不会很难解决。我会努力的...非常感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多