如何在WPF程序中为C#中的Image ScaleTransform设置动画?

时间:2013-01-24 01:14:30

标签: c# xaml

我想为此ScaleTransform设置动画

       <Image x:Name="photoB" Height="290"  Width="420" Stretch="Uniform" RenderTransformOrigin="0.5,0.5" >
             <Image.RenderTransform>
                <TransformGroup>
                    <ScaleTransform ScaleY="40" ScaleX="40"/>
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform/>
                </TransformGroup>
            </Image.RenderTransform>
       </Image>

问题是我找不到让WPF开心的TargetProperty!

我尝试过像

这样的事情
Storyboard.SetTargetProperty(kenBurnsAnimationA, new PropertyPath("(Image.RenderTransform)[0].ScaleTransform.ScaleX"));

Storyboard.SetTargetProperty(kenBurnsAnimationA, new PropertyPath("ScaleTransform.ScaleX"));

Storyboard.SetTargetProperty(kenBurnsAnimationA, new PropertyPath("(Image.RenderTransform.TransformGroup.ScaleTransform.ScaleX"));

但似乎没有任何效果。

XAML的C#“CodeBehind”秘诀是什么?

2 个答案:

答案 0 :(得分:1)

尝试(Image.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)

答案 1 :(得分:0)

问题是我需要将一个空的Image.RenderTransform TransformGroup添加到我的XAML

       <Image x:Name="photoA" Height="290"  Width="420" Stretch="Uniform" RenderTransformOrigin="0.5,0.5" >
            <Image.RenderTransform>
                <TransformGroup>
                    <ScaleTransform />
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform/>
                </TransformGroup>
            </Image.RenderTransform>
        </Image>

如果它们不存在,您无法为它们制作动画!我想我也可以从C#中添加转移组。

感谢@Anton Tykhyy指出我正确的道路。