首页 > 解决方案 > WPF代码隐藏动画c#

问题描述

谁能帮助我如何通过代码隐藏创建一个动画,该动画将使用定义的控件进行动作?

请不要关闭这个我真的需要帮助......

<Image x:Name="imgMan" Source="/wpfUsrControlTower1;component/DependentResources/man.png" Stretch="Fill" Height="26.4">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>

<Path x:Name="k3_r2" Visibility="Hidden" Fill="Transparent" StrokeThickness="3" StrokeDashArray="2 0 0 2" Stretch="Fill" Stroke="Blue" Data="M570,190 L570,160 495,160 495,125 165,125 165,175" Height="65" Canvas.Left="165" Canvas.Top="125" Width="405"/>

标签: c#wpf

解决方案


使用 MatrixTransform 作为图像的 RenderTransform

<Canvas>
    <Path x:Name="k3_r2"
          StrokeThickness="3" StrokeDashArray="4 4" Stroke="Blue"
          Data="M570,190 L570,160 495,160 495,125 165,125 165,175"/>

    <Image x:Name="imgMan"
           Source="/wpfUsrControlTower1;component/DependentResources/man.png"
           Stretch="Fill" Height="30"
           Canvas.Left="-15" Canvas.Top="-15">
        <Image.RenderTransform>
            <MatrixTransform/>
        </Image.RenderTransform>
    </Image>
</Canvas>

你可以使用这样的东西:

var animation = new MatrixAnimationUsingPath
{
    PathGeometry = PathGeometry.CreateFromGeometry(k3_r2.Data),
    Duration = TimeSpan.FromSeconds(5)
};

imgMan.RenderTransform.BeginAnimation(MatrixTransform.MatrixProperty, animation);

推荐阅读