как сбросить свойство угла RotateTransform - PullRequest
0 голосов
/ 22 октября 2011

У меня на холсте есть элемент, показывающий руку робота.Эта рука может растягиваться и вытягиваться с помощью анимации.

Теперь мне нужно инициализировать руку и в некоторых случаях сохранять свернутый статус (не с помощью анимации).Поэтому мне нужно сбросить свойство угла RotateTransform.

 <Canvas x:Name="RobotArm_Left" Width="60" Height="10" RenderTransformOrigin="0.9167,0.5" Canvas.Top="62.5" Canvas.Left="12.5">
    <Canvas.RenderTransform>
        <TransformGroup>                                   
            <RotateTransform x:Name="Rotate_RobotArm_Left" />                                    
        </TransformGroup>
    </Canvas.RenderTransform>
</Canvas>

Я использую два способа установки угла:

((RotateTransform)page.FindName("Rotate_RobotArm_Left")).Angle=0; //0 is the init value
((RotateTransform)page.FindName("Rotate_RobotArm_Left")).SetValue(RotateTransform.AngleProperty, 0.0);

они все не работают.

когда я смотрю значение ((RotateTransform) page.FindName ("Rotate_RobotArm_Left")). Угол, это -55.

Есть ли один способ установить свойство?

в противном случае перед запуском анимации свойство угла может быть изменено. Но после анимации его нельзя изменить.

спасибо.

Ответы [ 2 ]

1 голос
/ 22 октября 2011

Может быть полезен другой подход:

Не анимируйте вращение, а анимируйте свойство объекта и привязывайте к нему угол поворота.Это позволит вам контролировать анимацию и освободить вас от знания / поиска элементов в XAML.

1 голос
/ 22 октября 2011

Анимированное значение имеет приоритет над локально установленным значением.Либо остановите анимацию (в этом случае значение вернется к неанимированному значению), либо анимируйте ее до желаемого значения.См. приоритет свойства зависимостей для получения дополнительной информации.

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

...