0

Я строю Silverlight 4 UserControl в Blend, который имеет три VisualStates.Вращение состояний в Blend 4 VisualStateManager на основе событий таймера?

Я бы хотел, чтобы состояния менялись от первого до второго состояния после задержки нескольких секунд, от второй до третьей после нескольких секунд, от третьего до первого после другой задержки и продолжали вращаться так.

По существу, это очень примитивный «ротатор объявлений», используя некоторые статические изображения для прототипа, который я создаю.

Возможно ли это, используя Blend? Если да, то как? Я могу использовать поведение TimerTriggers и ActivateStateAction, чтобы создать первое полное вращение, но я не уверен, как сбросить таймеры, или будет ли другой подход работать лучше.

ответ

0
  1. Назовите элемент управления с помощью x: Наименование ярлыка; Я назвал мое "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. Прибыль!

Имя управления с й: Name = "SomeName"