• 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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    LeetCode. 476. Number Complement
    LeetCode 172.Factorial Trailing Zeroes
    原码,反码,补码笔记
    python3笔记
    django笔记(python web框架)
    mysql 8.0 主从复制配置
    centos 7系统安装mysql 8.0
    MobaXterm无法退格删除
    Oracle数据泵常用命令
    oracle查年度周末日期
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1631564.html
Copyright © 2020-2023  润新知