Вращающиеся состояния в Blend 4 VisualStateManager на основе событий таймера? - PullRequest
0 голосов
/ 08 июля 2010

Я создаю Silverlight 4 UserControl в Blend, который имеет три VisualStates.

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

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

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

1 Ответ

0 голосов
/ 15 июля 2010
  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"

...