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”这个属性还不是很明白。
  • 相关阅读:
    HTTP Error 502.5
    ubuntu 换源 aliyun
    vsdbg 下载方法 使用下载工具下载后手动安装
    Asp.NET Core Nginx Ocelot ForwardedHeaders X-Forwarded-For
    ocelot性能测试
    Hyper V 内部网络(NAT)设置 配置固定IP / DHCP
    Powershell ExecutionPolicy 执行策略
    centos ftp服务器搭建 vsftpd 匿名访问配置方法 ftp 550 Failed to open file 错误处理
    powershell与linux bash对比
    virtualbox 配置记录
  • 原文地址:https://www.cnblogs.com/nasa/p/1069819.html
Copyright © 2011-2022 走看看