首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重置RotateTransform的角度属性

如何重置RotateTransform的角度属性
EN

Stack Overflow用户
提问于 2011-10-22 10:53:35
回答 2查看 2K关注 0票数 0

我有一个画布,包括一些元素,以显示机器人的手臂。这只手臂可以通过动画伸展和拉回。

现在我需要初始化手臂并在某些情况下保持折叠状态(不是通过动画)。所以我需要重置RotateTransform的角度属性。

代码语言:javascript
复制
 <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>

我使用两种方法来设置角度:

代码语言:javascript
复制
((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")).Angle,的值时,它是-55。

有没有一种方法可以设置这个属性?

否则,在运行动画之前,角度属性可以在动画之后设置为changed.But,该属性不能更改。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-22 17:14:38

动画值优先于本地设置的值。停止动画(在这种情况下,该值将恢复为一致的值)或将其设置为所需的值。有关详细信息,请参阅dependency property precedence

在这种情况下,使用SetCurrentValue有点麻烦,因为您将替换动画产生的值,而不是将动画作为值源完全删除。换句话说,动画仍然处于活动状态,您只是更改了它报告的值。

票数 1
EN

Stack Overflow用户

发布于 2011-10-22 17:43:31

另一种方法可能很有用:

不要为旋转设置动画,而是为对象的属性设置动画并将旋转角度绑定到该属性。这将允许您控制动画,并将您从知道/查找XAML中的元素中解放出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7857114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档