0

我正在 Blend 中构建一个 Silverlight 4 UserControl,它具有三个 VisualStates。

我想让状态在几秒钟的延迟后从第一个状态变为第二个状态,再过几秒钟后从第二个变为第三个,在另一个延迟后从第三个变为第一个,然后继续像这样旋转。

本质上,这是一个非常原始的“广告轮播”,使用一些静态图像作为我正在构建的原型。

是否可以使用 Blend 来做到这一点?如果是这样,怎么做?我可以使用 TimerTriggers 和 ActivateStateAction 行为来创建第一个完整旋转,但我不确定如何重置计时器,或者其他方法是否会更好。

4

1 回答 1

0
  1. 使用 x:Name 标签命名控件;我将我的命名为“ControlName”
  2. 声明一个 TimerTrigger:

    <ei:TimerTrigger MillisecondsPerTick="3000">
        <ei:CallMethodAction MethodName="NextState" TargetObject="{Binding ElementName=ControlName}"/>
    </ei:TimerTrigger>
    
  3. 在后面的代码中使用您的状态来实现此代码。是的。背后的代码。

    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

  4. ...?

  5. 利润!

使用 x:Name="SomeName" 命名控件

于 2010-07-15T03:33:10.520 回答