2010-07-07 41 views
0

我在Blend中構建了一個Silverlight 4 UserControl,它有三個VisualState。基於定時器事件在Blend中旋轉狀態4 VisualStateManager?

我想從幾秒鐘後的狀態從第一個狀態改變到第二個狀態,再過幾秒鐘後的第二個到第三個狀態,再一個延遲的第三個到第一個狀態,並繼續像這樣旋轉。

基本上,這是一個非常原始的「廣告旋轉」,使用一些靜態圖像作爲我正在構建的原型。

使用Blend可以做到這一點嗎?如果是這樣,怎麼樣?我能夠使用TimerTriggers和ActivateStateAction行爲來創建第一個完整的旋轉,但我不知道如何重置定時器,或者另一種方法是否會更好地工作。

回答

0
  1. 將該控件命名爲x:Name標籤;我叫我的「控件名稱」
  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控制:名稱= 「SomeName」