wpf TranslateTranform 动画疑问

bingying19872008 2014-11-18 02:21:06
刚开始学wpf,建了一个新工程,里面有2个按钮(A,B)
我点击A的时候 使用 Rendertransfrom.TranslateTranform 将B按钮从 (0,0) 平移到了(0,50)
当我再次点击A的时候 我希望B从(0,50)平移到(0,100)
可实际却是再次的从(0,0)平移到(0,50).
我分别设置了动画的行为 为 Stop 或则HoldOn 都无效
Stop 动画一结束 按钮自动回到原来的位置(0,0)
HoldOn 动画结束后会使按钮保持在(0,50)

怎样才能达到我所需要的效果呢
...全文
141 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
beehigh 2014-11-19
  • 打赏
  • 举报
回复
引用 楼主 bingying19872008 的回复:
刚开始学wpf,建了一个新工程,里面有2个按钮(A,B) 我点击A的时候 使用 Rendertransfrom.TranslateTranform 将B按钮从 (0,0) 平移到了(0,50) 当我再次点击A的时候 我希望B从(0,50)平移到(0,100) 可实际却是再次的从(0,0)平移到(0,50). 我分别设置了动画的行为 为 Stop 或则HoldOn 都无效 Stop 动画一结束 按钮自动回到原来的位置(0,0) HoldOn 动画结束后会使按钮保持在(0,50) 怎样才能达到我所需要的效果呢
这个很简单,只设置by属性,fillbehavior设置为holdend就可以了

        <Canvas Grid.Row="0" Height="300" Width="300">
            <Rectangle Canvas.Left="0" Canvas.Top="0" Fill="Blue" Width="20" Height="20">
                <Rectangle.Triggers>
                    <EventTrigger RoutedEvent="MouseLeftButtonDown">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)"
                                                 By="50" Duration="0:0:1" FillBehavior="HoldEnd"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Rectangle.Triggers>
            </Rectangle>
        </Canvas>
exception92 2014-11-18
  • 打赏
  • 举报
回复
后台控制的?? 这个你需要设置2个动画,第一个动画0-50,第二个动画是50-100。 在后台 click事件中记录一个变量count(默认值为0),第一次点击 执行第一个动画,并count++;第二次点击判断count是否等于1,成立就执行第二个动画。

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧