c# - 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"/>
解决方案
使用 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);
推荐阅读
- typescript - 如何在 Typescript 中检查二进制类型别名
- mysql - MySQL 8.0 行长度(8,126 对 65,535)
- visual-c++ - LINK:将静态库链接到 C++ 项目时出现致命错误 LNK1000
- dc.js - 使范围图缩放而不过滤
- apt - 你如何创建一个 apt-get 包
- node.js - “npm”无法识别
- flutter - 我可以用百分比而不是像素来定义 Flutter 小部件的宽度吗?
- python - Discord.py 异步函数不提供任何输出,也不做任何事情
- javascript - 如何将数组对象转换为对象数组?
- sql - 数据选择/行选择