• 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”这个属性还不是很明白。
  • 相关阅读:
    redis 写入数据 越来越慢 是什么原因
    redis slowlog
    JavaCC 规格严格
    Lucene 规格严格
    数据库建立索引要点 规格严格
    编辑距离 规格严格
    Lucene NRT (Near Real Time) 规格严格
    事件关联 规格严格
    linux下mysql5.5.19编译安装笔记【已验证】 规格严格
    关于CLOSE BY CLIENT STACK TRACE 规格严格
  • 原文地址:https://www.cnblogs.com/nasa/p/1069819.html
Copyright © 2020-2023  润新知