前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Blend生成的TransformGroup如何引用?

Blend生成的TransformGroup如何引用?

作者头像
菩提树下的杨过
发布2018-01-23 14:37:25
8590
发布2018-01-23 14:37:25
举报

很多时候,blend在制作动画时,会自动为对象生成如下代码:

<Rectangle Fill="White" Stroke="Black" HorizontalAlignment="Center" VerticalAlignment="Center" Width="300" Height="30" RenderTransformOrigin="0.5,0.5" x:Name="rect">
 <Rectangle.RenderTransform>
 <TransformGroup>
 <ScaleTransform/>
 <SkewTransform/>
 <RotateTransform/>
 <TranslateTransform/>
 </TransformGroup>
 </Rectangle.RenderTransform>
 </Rectangle>

如果想在cs代码中动态控制,就得先知道如何引用它们,在不借助x:Name的情况下,可以这么做: 

private void Button_Click(object sender, RoutedEventArgs e)
        {            

 RotateTransform r = (rect.RenderTransform as TransformGroup).Children[2] as RotateTransform;

            DoubleAnimation dblAnim = new DoubleAnimation() { Duration = TimeSpan.FromSeconds(1), To = 135.0, EasingFunction = new BackEase() { EasingMode = EasingMode.EaseInOut } };         

            Storyboard.SetTarget(dblAnim, r);
            Storyboard.SetTargetProperty(dblAnim, new PropertyPath(RotateTransform.AngleProperty));

            Storyboard sb = new Storyboard();
            sb.Children.Add(dblAnim);           
            sb.AutoReverse = true;
            sb.Begin();           

        }
    }

上面的代码,将生成一段动画:1秒钟内将矩形旋转135度       

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009-12-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档