2017-05-03 11 views
0

私のイメージ(インジケータ1)を回転させるために、以下のコードが見つかりました。WPF RotateTransformが機能しない

ボタンをクリックしても何も起こりません。

誰でも解決方法を知っていますか?

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     RotateTransform rotateTransform = indicator1.RenderTransform as RotateTransform; 

     DoubleAnimation doubleAnimation = new DoubleAnimation(); 
     doubleAnimation.From = 0; 
     doubleAnimation.To = 360; 
     doubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(10000)); 

     Storyboard.SetTarget(doubleAnimation, rotateTransform); 
     Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath(RotateTransform.AngleProperty)); 

     Storyboard storyboard = new Storyboard(); 
     storyboard.RepeatBehavior = RepeatBehavior.Forever; 
     storyboard.Children.Add(doubleAnimation); 
     storyboard.Begin(this); 
    } 
+0

"それは機能していません"と説明してください。画像や説明、またはエラーメッセージが誰かにあなたを助けるために必要です。 –

答えて

1

Storyboardは不要です。コードStoryboardrequires a workaround to get the target name lookup to to workの後ろに使用する。私はこれの正確な原因を研究していない、またはそれが常に問題であるかどうかを調べていない。以下のコードは動作します。

今すぐDoubleAnimationRepeatBehaviorを設定することに注意してください。

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    RotateTransform rotateTransform = indicator1.RenderTransform as RotateTransform; 

    DoubleAnimation doubleAnimation = new DoubleAnimation(); 
    doubleAnimation.From = 0; 
    doubleAnimation.To = 360; 
    doubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(10000)); 

    doubleAnimation.RepeatBehavior = RepeatBehavior.Forever; 

    rotateTransform.BeginAnimation(RotateTransform.AngleProperty, doubleAnimation); 
} 
+0

ご返信ありがとうございます。それ以降はアニメーションがあるので、ストーリーボードが必要です。 – jim

+0

@jim次に、ストーリーボードの回避策を示すリンクされた回答を参照してください。 –

+0

私はそれを得た。ありがとうございました! – jim

関連する問題