c# - 围绕元素原点到 C# 代码的旋转动画
问题描述
我有一个 XAML 代码,它为元素的旋转变换的角度属性设置动画:
<Canvas.RenderTransform>
<RotateTransform Angle="0"
x:Name="MyAnimatedTransform"/>
</Canvas.RenderTransform>
<Canvas.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="MyAnimatedTransform"
Storyboard.TargetProperty="(RotateTransform.Angle)"
From="0.0"
To="90"
Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
从那以后我一直在尝试将其转换为 C# 代码,但由于某种原因,我认为我遗漏了一些东西......
代码:
public void AnimateElement(RotateTransform element, UIElement control, double degreesTo, double secDuration)
{
DoubleAnimation OriginAnimatorDoubleAnimation = new DoubleAnimation()
{
From = 0,
To = degreesTo,
Duration = TimeSpan.FromSeconds(secDuration)
};
Storyboard.SetTargetProperty(element, new PropertyPath("RotateTransform.Angle"));
Storyboard.SetTarget(element, OriginAnimatorDoubleAnimation);
Storyboard storyboard = new Storyboard();
storyboard.Duration = TimeSpan.FromSeconds(secDuration);
storyboard.Children.Add(OriginAnimatorDoubleAnimation);
storyboard.Begin();
}
有人可以告诉我我做错了什么吗?
谢谢,
解决方案
这对我有用:
public void RotateElement(RotateTransform transform, double degreesTo, double secDuration)
{
var animation = new DoubleAnimation
{
To = degreesTo,
Duration = TimeSpan.FromSeconds(secDuration)
};
transform.BeginAnimation(RotateTransform.AngleProperty, animation);
}
不过谢谢!
推荐阅读
- java - Spring Boot安全自定义登录页面到不同的url“/”不起作用
- java - Tomcat10 无法启动 bootstrap.jar 未找到
- python - 我需要将 python fille (.py) 转换为 QtDesigner fil (.ui) 而不是 invers
- go - 去更新所有模块
- postgresql - psql SPLIT 的最新部分
- regex - 如何使用正则表达式在powershell中获取字符和字符串之间的子字符串
- java - 我想一键拨打电话,使用一个固定号码
- javascript - 验证表单并显示警报中未填写的项目
- terminal - 仅从 grep -n 中取出前两个值
- java - Jenkinsfile:从另一个脚本传递 env