如何检查故事板的状态

本文关键字:故事 状态 检查 何检查 | 更新日期: 2023-09-27 17:50:13

如何检查故事板的状态?

的例子 :

if (storyboard.Completed += true) // ???
{
}

(这段代码不能工作,原因很明显)

如何检查故事板的状态

只需挂钩Completed事件,当您的代码在那里运行时,故事板将完成。参见:http://msdn.microsoft.com/en-us/library/system.windows.media.animation.timeline.completed (VS.95) . aspx # Y565

如何创建一个布尔变量(例如IsCompleted)并在Completed回调中将其设置为true ?

这行不通。

            Storyboard storyBoardPulse = this.FindResource("StoryboardMainIconPulse") as Storyboard;
            Storyboard.SetTarget(storyBoardPulse, this.imageIcon);
            if (storyBoardPulse.GetCurrentState() != ClockState.Active)
            {
                storyBoardPulse.Begin();
            }

返回错误

系统。用户代码未处理InvalidOperationException

HResult = -2146233079

消息=无法执行该操作。故事板指定不是应用于此对象以进行交互控制。

我做了一个非常血腥的变通:

private Boolean pulseOn;
private void operationsOfMaintenance_OperationExpired(Boolean state)
        {
            Storyboard storyBoardPulse = this.FindResource("StoryboardMainIconPulse") as Storyboard;
            Storyboard.SetTarget(storyBoardPulse, this.imageIcon);
            if (!state)
            {
                storyBoardPulse.Stop();
                storyBoardPulse.Remove();
                pulseOn = false;
            }
            else
            {
                if(!pulseOn)storyBoardPulse.Begin();
                pulseOn = true;
            }
        }

有谁知道为什么第一个例子得到一个错误!

谢谢

if(storyboard.GetCurrentState() == ClockState.Active)
{
    // do something
}