0

3 つの VisualStates を持つ Blend で Silverlight 4 UserControl を構築しています。

数秒遅れて最初の状態から 2 番目の状態に、さらに数秒後に 2 番目の状態から 3 番目の状態に、さらに遅れて 3 番目の状態から最初の状態に変化し、そのように回転し続けたいと思います。

基本的に、これは非常に原始的な「広告ローテーター」であり、私が構築しているプロトタイプにいくつかの静止画像を使用しています。

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 に答える