2012-04-02 6 views
0

私は私のXAMLでこれを持っている:私のWindows phoneシルバーライトの回転アニメーションが動作しないのはなぜですか?

private void button_Submit_Click(object sender, RoutedEventArgs e) 
    { 
     Storyboard_Animation.Begin(); 
    } 

:私は私のクリックの方法でこれを持って

  <Button Grid.Row="0" Grid.Column="1" Content="Submit" Margin="0" Name="button_Submit" Click="button_Submit_Click"> 
       <Button.Template> 
        <ControlTemplate> 
         <Image Source="Images/buttonImage.png"></Image> 
        </ControlTemplate> 
       </Button.Template> 
       <Button.RenderTransform> 
        <RotateTransform></RotateTransform> 
       </Button.RenderTransform> 
      </Button> 

  <Grid.Resources> 
       <Storyboard x:Name="Storyboard_Animation"> 
        <DoubleAnimation 
          Storyboard.TargetName="button_Submit" 
          Storyboard.TargetProperty="Angle" 
          From="0" 
          To="360" 
          Duration="0:0:1"></DoubleAnimation> 
       </Storyboard> 
      </Grid.Resources> 

私は同じグリッド内のボタンを持っています私のボタンをクリックします。エラーが発生します: 指定されたオブジェクトのTargetProperty Angleを解決できません。

しかし、私は角度以外のものを使用するはずです。私は、XAMLではなく、コードでストーリーボードを入れたいのですが

private void RotateStar() 
    { 
     button_Submit.RenderTransformOrigin = new Point(0.5, 0.5); 
     button_Submit.RenderTransform = new RotateTransform(); 
     DoubleAnimation da = new DoubleAnimation 
     { 
      From = 0, 
      To = 360, 
      Duration = TimeSpan.FromSeconds(0.3) 
     }; 
     Storyboard.SetTarget(da, button_Submit.RenderTransform); 
     Storyboard.SetTargetProperty(da, new PropertyPath(RotateTransform.AngleProperty)); 
     Storyboard sb = new Storyboard(); 
     sb.Children.Add(da); 
     sb.Begin(); 
    } 

は、私が正常に動作し、このコードの他の部分を持っています。コードバージョンのように動作するように、XAMLバージョンで追加/変更する必要はありますか?

答えて

1

このお試しください:この1

<Grid.Resources> 
    <Storyboard x:Name="Storyboard_Animation"> 
     <DoubleAnimation 
      Storyboard.TargetName="button_Submit" 
      Storyboard.TargetProperty="(UIElement.RenderTransform).(RotateTransform.Angle)" 
      From="0" 
      To="360" 
      Duration="0:0:1"> 
     </DoubleAnimation> 
    </Storyboard> 
</Grid.Resources> 
+0

(UIElement.RenderTransform)。(RotateTransform.Angle)は私が必要としたものです。ありがとうございました。 – dtc

1

"TargetProperty"を使用すると問題が正しくありません。ボタンにAngleプロパティがない場合は、RenderTransformに使用する必要があります。この

こうした:

<Storyboard x:Name="Storyboard_Animation"> 
           <DoubleAnimation Duration="0:0:1" To="-180.221" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="button" d:IsOptimized="True"/> 
    </Storyboard> 

よろしく、 ローマ。

+0

はかなりの仕事をしませんでしたが、あなたの説明が役に立ちました。 TargetPropertyではどのような値が受け入れられるのか、私の場合はどこで(UIElement.RenderTransform)(RotateTransform.Angle)が働いていたのか、わからない。 – dtc

+0

多分それはプラットフォームに依存しています、私の例はWP 7.1バージョンで動作しますが、私は7.0でそれを試しませんでした。 –

+0

これは 'Button'の中身によります。デフォルトでは、 'Blend'は' CompositeTransform'を書き込みますが、@dtcは 'RotateTransform'を内部に持っています – Ku6opr

関連する問題