将 XAML 个故事板转换为 C#?
Convert XAML Storyboard to C#?
我在谷歌搜索后想知道是否有一个工具可以将 Storyboard XAML 代码转换为 C#,或者是否有其他方法可以实现我的目标:
我需要后面的代码,因为 我需要控制 "Wheel Of Fortune" 将落在哪个值上 ,但是创建一个带有计时器和旋转的动画事件太紧张和生涩。
关于如何从 XAML Blend Storyboards 中获得黄油般平滑的动画,但对于此类事情如何控制 C# 的任何建议?
<Storyboard x:Key="OnMouseLeftButtonDown1">
<PointAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)" Storyboard.TargetName="DailySpinColoursText_png">
<EasingPointKeyFrame KeyTime="0" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:0.3" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:0.6" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:1" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:1.4" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:1.8" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:2.2" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:2.6" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:3" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:3.4" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:3.8" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:4.2" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:4.6" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:5" Value="0.5,0.5"/>
</PointAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="DailySpinColoursText_png">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="100"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.6" Value="400"/>
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="1100"/>
<EasingDoubleKeyFrame KeyTime="0:0:1.4" Value="2600"/>
<EasingDoubleKeyFrame KeyTime="0:0:1.8" Value="4600"/>
<EasingDoubleKeyFrame KeyTime="0:0:2.2" Value="6100"/>
<EasingDoubleKeyFrame KeyTime="0:0:2.6" Value="7300"/>
<EasingDoubleKeyFrame KeyTime="0:0:3" Value="8300"/>
<EasingDoubleKeyFrame KeyTime="0:0:3.4" Value="8800"/>
<EasingDoubleKeyFrame KeyTime="0:0:3.8" Value="9000"/>
<EasingDoubleKeyFrame KeyTime="0:0:4.2" Value="9100"/>
<EasingDoubleKeyFrame KeyTime="0:0:4.6" Value="9150"/>
<EasingDoubleKeyFrame KeyTime="0:0:5" Value="9200"/>
<EasingDoubleKeyFrame KeyTime="0:0:5.4" Value="9220"/>
<EasingDoubleKeyFrame KeyTime="0:0:5.8" Value="9225"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
提前致谢!
PS。我在网上找到了几个用 C# 旋转动画的例子,但我需要它慢慢地旋转起来,然后在动画中间开始快速旋转,然后在结束时缓慢而悬疑地结束。有了我在互联网上看到的东西,我不知道该怎么做。
您可以在后面的代码中为 RotateTransform 的 Angle
属性 设置动画,如下所示。除了使用大量的 EasingDoubleKeyFrames,您还可以使用单个 EasingFunction:
element.RenderTransformOrigin = new Point(0.5, 0.5);
element.RenderTransform = new RotateTransform();
var animation = new DoubleAnimation
{
To = 9225,
Duration = TimeSpan.FromSeconds(5.8),
EasingFunction = new CubicEase { EasingMode = EasingMode.EaseInOut }
};
element.RenderTransform.BeginAnimation(RotateTransform.AngleProperty, animation);
我在谷歌搜索后想知道是否有一个工具可以将 Storyboard XAML 代码转换为 C#,或者是否有其他方法可以实现我的目标:
我需要后面的代码,因为 我需要控制 "Wheel Of Fortune" 将落在哪个值上 ,但是创建一个带有计时器和旋转的动画事件太紧张和生涩。
关于如何从 XAML Blend Storyboards 中获得黄油般平滑的动画,但对于此类事情如何控制 C# 的任何建议?
<Storyboard x:Key="OnMouseLeftButtonDown1">
<PointAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)" Storyboard.TargetName="DailySpinColoursText_png">
<EasingPointKeyFrame KeyTime="0" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:0.3" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:0.6" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:1" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:1.4" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:1.8" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:2.2" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:2.6" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:3" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:3.4" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:3.8" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:4.2" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:4.6" Value="0.5,0.5"/>
<EasingPointKeyFrame KeyTime="0:0:5" Value="0.5,0.5"/>
</PointAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="DailySpinColoursText_png">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="100"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.6" Value="400"/>
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="1100"/>
<EasingDoubleKeyFrame KeyTime="0:0:1.4" Value="2600"/>
<EasingDoubleKeyFrame KeyTime="0:0:1.8" Value="4600"/>
<EasingDoubleKeyFrame KeyTime="0:0:2.2" Value="6100"/>
<EasingDoubleKeyFrame KeyTime="0:0:2.6" Value="7300"/>
<EasingDoubleKeyFrame KeyTime="0:0:3" Value="8300"/>
<EasingDoubleKeyFrame KeyTime="0:0:3.4" Value="8800"/>
<EasingDoubleKeyFrame KeyTime="0:0:3.8" Value="9000"/>
<EasingDoubleKeyFrame KeyTime="0:0:4.2" Value="9100"/>
<EasingDoubleKeyFrame KeyTime="0:0:4.6" Value="9150"/>
<EasingDoubleKeyFrame KeyTime="0:0:5" Value="9200"/>
<EasingDoubleKeyFrame KeyTime="0:0:5.4" Value="9220"/>
<EasingDoubleKeyFrame KeyTime="0:0:5.8" Value="9225"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
提前致谢!
PS。我在网上找到了几个用 C# 旋转动画的例子,但我需要它慢慢地旋转起来,然后在动画中间开始快速旋转,然后在结束时缓慢而悬疑地结束。有了我在互联网上看到的东西,我不知道该怎么做。
您可以在后面的代码中为 RotateTransform 的 Angle
属性 设置动画,如下所示。除了使用大量的 EasingDoubleKeyFrames,您还可以使用单个 EasingFunction:
element.RenderTransformOrigin = new Point(0.5, 0.5);
element.RenderTransform = new RotateTransform();
var animation = new DoubleAnimation
{
To = 9225,
Duration = TimeSpan.FromSeconds(5.8),
EasingFunction = new CubicEase { EasingMode = EasingMode.EaseInOut }
};
element.RenderTransform.BeginAnimation(RotateTransform.AngleProperty, animation);