2015-05-16 2 views
0

У меня есть часть xaml, которая применяет масштабное преобразование и rotatetransform.Нужна помощь при использовании анимации в группе преобразований в wpf

 <Image.RenderTransform> 
      <TransformGroup> 
       <RotateTransform Angle="0" x:Name="RotateTransform"/> 
       <TranslateTransform X="0" Y="0"/> 
       <ScaleTransform ScaleX="2" ScaleY="2"/> 
      </TransformGroup> 
     </Image.RenderTransform> 

У меня также есть раскадровка, который должен Accesss RotateTransform как так:

 <Storyboard x:Key="Storyboard" 
       Storyboard.TargetProperty="(RenderTransform).(RotateTransform.Angle)" 
       Storyboard.TargetName="RotateTransform"> 
     <DoubleAnimation From="0" To="360" RepeatBehavior="Forever" SpeedRatio="0.25" /> 
    </Storyboard> 

Однако я не могу получить изображение, чтобы повернуть, но это масштабы. У кого-нибудь есть предложения по устранению проблемы?

Edit: я понять, что я могу использовать

<Storyboard x:Key="Storyboard" 
       Storyboard.TargetProperty="(Image.RenderTransform).Children[0].Angle" 
       Storyboard.TargetName="ContentImage"> 
     <DoubleAnimation From="0" To="360" RepeatBehavior="Forever" SpeedRatio="0.25" /> 
    </Storyboard> 

И вызвать анимацию, позиции массива, но почему это не возможно, на самом деле назвать угол свойства свойства, автоматически преобразуются по х: Имя?

ответ

1

A RotateTransform не имеет RenderTransform объект, поэтому вы не можете анимировать RenderTransform.Angle.

Анимация должна была бы непосредственно нацелить объект Angle. Кроме того, вы обычно применяете свойства TargetName и TargetProperty к DoubleAnimation, а не к Раскадке. Вы также установили бы Duration анимации вместо применения SpeedRatio для стандартной продолжительности в одну секунду.

<Storyboard> 
    <DoubleAnimation 
     Storyboard.TargetName="RotateTransform" 
     Storyboard.TargetProperty="Angle" 
     From="0" To="360" RepeatBehavior="Forever" Duration="0:0:4"/> 
</Storyboard> 
+0

Я пробовал понимать, как работает соотношение скоростей, но как именно он работает? Поддерживает ли он скорость обычной скорости по умолчанию, скорость clcok, частоту кадров? Я не могу понять это – maximdumont

+0

Из [MSDN] (https://msdn.microsoft.com/en-us/library/system.windows.media.animation.timeline.speedratio.aspx): * скорость, с которой прогрессирует для этой временной шкалы относительно скорости родителя временной шкалы или, если это временная шкала корня, скорость по умолчанию в хронологии *. – Clemens

Смежные вопросы