zoukankan      html  css  js  c++  java
  • Blend生成的TransformGroup如何引用?

    很多时候,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[2as 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度       

    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    实例教学在MySQL中若何导出整个数据库
    在Linux下Turbomail简易快捷的装置方式
    Fedora下编译mitscheme
    Fedora 9可以不敌RedHat 9光辉
    实用伎俩:Ubuntu Linux 8.04设置与优化
    Linux下给WordPress建设伪静态
    红旗桌面版本最新使用要领和题目问题解答100例5
    知识管理系统红旗Linux/KM.Center
    python 虚拟环境的安装
    python 闭包
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1631564.html
Copyright © 2011-2022 走看看