【问题标题】:Stop a storyboard after starting in wpf在 wpf 中启动后停止情节提要
【发布时间】:2020-08-06 13:41:23
【问题描述】:

我使用 Storyboard 来闪烁 Image。我已经在 XAML 上定义了故事板:

<UserControl.Resources>
    <Storyboard x:Key="AnimateFlicker" RepeatBehavior="Forever">
        <DoubleAnimation Storyboard.TargetProperty="Opacity"
                 From="0"
                 To="1"
                 AutoReverse="True"
                 BeginTime="0:0:1"
                 Duration="0:0:0.08" />
        <DoubleAnimation Storyboard.TargetProperty="Opacity"
                 From="1"
                 To="1"
                 AutoReverse="True"
                 Duration="0:0:0.4" />
        <DoubleAnimation Storyboard.TargetProperty="Opacity"
                 From="1"
                 To="0"
                 AutoReverse="True"
                 Duration="0:0:0.08" />
    </Storyboard>
</UserControl.Resources>

在我的代码中,我使用此代码来启动情节提要:

private void Blink(bool blink)
    {

        Storyboard storyboard = TryFindResource("AnimateFlicker") as Storyboard;
        if (blink)
        {
            if (storyboard != null)
            {
                imgState.BeginStoryboard(storyboard, HandoffBehavior.SnapshotAndReplace, true);
            }
        }
        else
        {
            storyboard.Stop(); //this line wont work and blinking continues.
        }
    }

但正如我在代码中提到的那样,storyboard.Stop() 不起作用并且闪烁继续。启动后如何停止闪烁?

【问题讨论】:

    标签: c# wpf storyboard


    【解决方案1】:

    调用Storyboard.Begin,然后调用Storyboard.PauseStoryboard.Pause,具体取决于您是否希望动画目标属性仍然受到影响:

    private void Blink(bool blink)
    {
        Storyboard storyboard = TryFindResource("AnimateFlicker") as Storyboard;
        if (blink)
        {
            if (storyboard != null)
            {
                storyboard.Begin(imgState, HandoffBehavior.SnapshotAndReplace, true);
            }
        }
        else
        {
            storyboard.Pause(imgState);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-16
      • 2011-08-03
      • 2011-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2020-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多