zoukankan      html  css  js  c++  java
  • DoubleAnimation方法

    现在silverlight中还不支持直接用c#代码来创建动画,只能通过XamlReader来加载storyboard。
    今天看了DoubleAnimation这个方法。可以动态的设置属性。   这里就很奇怪。我动态的new出来的巨型一直不发生变化。而直接在舞台上画出的巨型就能发生变化。
    研究了好久才发现DoubleAnimation只能操作已经声明过的属性。
        <Rectangle Width="46" Height="41" Fill="#FFA74545" Stroke="#FF000000" Canvas.Left="154"
    Canvas.Top
    ="262" x:Name="ox" RenderTransformOrigin="0.5,0.5">
            <Rectangle.RenderTransform>
                
    <TransformGroup>
                    
    <ScaleTransform ScaleX="1" ScaleY="1"/>
                    
    <SkewTransform AngleX="0" AngleY="0"/>
                    
    <RotateTransform Angle="34.744"/>
                    
    <TranslateTransform X="0" Y="0"/>
                
    </TransformGroup>
            
    </Rectangle.RenderTransform>

        
    </Rectangle>

            private const string ANIMATION = "<Storyboard Name=\"TestStoryboard\">"
           
    + "<DoubleAnimation"
           
    + "  Storyboard.TargetName=\"ox\""
           
    + "  Storyboard.TargetProperty=\"(UIElement.RenderTransform).
    (TransformGroup.Children)[
    3].(TranslateTransform.X)\""
           
    + "  From=\"0\" To=\"100\" Duration=\"0:0:5\" />"
           
    + "</Storyboard>";

                Storyboard storyboard = XamlReader.Load(ANIMATION) as Storyboard;
                
    this.Resources.Add(storyboard);
                storyboard.Begin();
    这里<Rectangle.RenderTransform>是必须要的。多一行少一行都不行。不然就不会产生动画。
    目前对“ Storyboard.TargetProperty”这个属性还不是很明白。
  • 相关阅读:
    Syncfusion Essential DocIO操作word文件实用函数
    用Ubuntu破解wep无线加密
    Wubi 安装的 Ubuntu 在引导时进入grub,无法进入系统的解决办法
    Ubuntu 下挂ISO到虚拟光驱的方法
    令人失望的联通3G
    个性的国度
    也谈人脸识别
    红日
    在应用程序里识别UserAgent对应的浏览器
    缘起
  • 原文地址:https://www.cnblogs.com/nasa/p/1069819.html
Copyright © 2011-2022 走看看