代码之家  ›  专栏  ›  技术社区  ›  Rob Perkins

基于计时器事件在Blend 4 VisualStateManager中旋转状态?

  •  0
  • Rob Perkins  · 技术社区  · 15 年前

    我正在Blend中构建一个Silverlight4用户控件,它有三个VisualState。

    我希望状态在延迟几秒钟后从第一个状态变为第二个状态,再延迟几秒钟后从第二个状态变为第三个状态,再延迟几秒钟后从第三个状态变为第一个状态,然后继续这样旋转。

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

    1 回复  |  直到 15 年前
        1
  •  0
  •   Rob Perkins    15 年前
    1. 用x:Name标签命名控件;我把我的名字叫做“控制名”
    2. <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”命名控件