gpt4 book ai didi

c# - 如何定期设置动画?

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:22 25 4
gpt4 key购买 nike

我有一个 Storyboard,它为分针设置动画以滑动 6 度。现在我希望分针永远每 59 秒滑动一次。有 Storyboard的任何属性或我可以做的任何其他方式吗?

我的 Storyboard

<Storyboard
x:Name="myStoryboard2">
<DoubleAnimation
x:Name="minuteAnimation"
Storyboard.TargetName="minHandTransform"
Storyboard.TargetProperty="Angle"
Duration="0:0:1"
From="{Binding Time, Converter={StaticResource minuteHandTransform}}"
To="{Binding Time, Converter={StaticResource minuteHandTransform}}"
RepeatBehavior="1x">
<DoubleAnimation.EasingFunction>
<SineEase
EasingMode="EaseOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>

最佳答案

这听起来不像是您想要依靠动画来管理的东西。只需管理每分钟从代码背后启动动画就可以了。这样做比使用神秘的转换器来控制 From/To 值要容易得多。诸如 DoubleAnimation 之类的时间轴具有 BeginTime 属性,但我已经看到并验证了有关长时间动画持续时间(如 1 分钟或以上)在 WinRT 中遇到错误的报告。

编辑*(代码示例)

我通常使用的两种简单的间隔触发事件的方法是使用带有回调事件的 DispatcherTimer 或异步循环。

1.调度器定时器

var timer = new DispatcherTimer { Interval = TimeSpane.FromSeconds(1) };
timer.Tick += (s, e) => { /* do your stuff */ };
timer.Start();

2。异步循环

RunMyLoop();

private async void RunMyLoop()
{
while (true)
{
/* do your stuff */
await Task.Delay(1000);
}
}

关于c# - 如何定期设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14273506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com