我正在Blend中构建一个Silverlight 4 UserControl,它有三个VisualStates。
我希望状态在延迟几秒后从第一个状态变为第二个状态,在几秒钟之后从第二个变为第三个状态,在另一个延迟之后变为第三个到第一个状态,并继续像那样旋转。
基本上,这是一个非常原始的“广告旋转器”,使用一些静态图像作为我正在构建的原型。
使用Blend可以做到这一点吗?如果是这样,怎么样?我可以使用TimerTriggers和ActivateStateAction行为来创建第一个完整的旋转,但我不知道如何重置定时器,或者其他方法是否会更好。
答案 0 :(得分:0)
声明TimerTrigger:
<ei:TimerTrigger MillisecondsPerTick="3000">
<ei:CallMethodAction MethodName="NextState" TargetObject="{Binding ElementName=ControlName}"/>
</ei:TimerTrigger>
使用后面的代码中的状态实现此代码。是。守则背后。
Public Sub NextState()
Select Case Me.RotateImageStates.CurrentState.Name
Case "run1"
VisualStateManager.GoToState(Me, "run2", True)
Case "run2"
VisualStateManager.GoToState(Me, "run3", True)
Case "run3"
VisualStateManager.GoToState(Me, "run1", True)
Case Else
VisualStateManager.GoToState(Me, "run1", True)
End Select
End Sub
...
利润!
使用x命名控件:Name =“SomeName”