首页 / C# / c# – 如何计算故事板动画循环的次数?
c# – 如何计算故事板动画循环的次数?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何计算故事板动画循环的次数?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1863字,纯文字阅读大概需要3分钟。
内容图文
我有这样的代码
<Storyboard x:Key="AdvMarquee" Completed="Storyboard_Completed">
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" From="-25" To="0" BeginTime="0:00:00" Duration="0:00:01" />
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" From="0" To="25" BeginTime="0:00:03" Duration="0:00:01" />
</Storyboard>
<Style x:Key="AnimationImageStyle" TargetType="StackPanel">
<Setter Property="Canvas.Top" Value="200" />
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard Storyboard="{StaticResource AdvMarquee}"/>
</EventTrigger>
</Style.Triggers>
</Style>
并使用此代码应用此动画样式
<Canvas x:Name="Advertise" Background="{x:Null}" Margin="10,0,0,0" >
<StackPanel Style="{StaticResource AnimationImageStyle}">
<Button Click="Advertise_Click" Style="{StaticResource AdvertisementBtnStyle}">
<TextBlock Name="AdvText" Text="This is Animated Text" Padding="10, 0, 10, 0"/>
</Button>
</StackPanel>
</Canvas>
我试图在Storyboard上使用Completed Event来计算Storyboard动画执行的次数.
在此之前,我尝试在Storyboard上添加RepeatBehavior =“Forever”,但它只是永远循环并且没有运行完成的事件.
现在,当我删除RepeatBehavior =“Forever”时,它会完成它的进度,计数,但它不再运行.
我怎么解决这个问题?
仍然不知道因为我真的很想与xaml wpfform合作.
我的Storyboard_Completed就像这样.
int count = 0;
private void Storyboard_Completed( object sender, EventArgs e )
{
count++;
}
解决方法:
为最后一个动画放置CurrentStateInvalidated的事件处理程序,您将有可能获得当前迭代:
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" From="0" To="25" BeginTime="0:00:03" Duration="0:00:01" CurrentStateInvalidated="DoubleAnimation_CurrentStateInvalidated"/>
int cnt=0;
private void DoubleAnimation_CurrentStateInvalidated(object sender, EventArgs e)
{
var ac = sender as AnimationClock;
cnt = (ac.Parent as ClockGroup).CurrentIteration;
}
Storyboard_Completed你不需要.
内容总结
以上是互联网集市为您收集整理的c# – 如何计算故事板动画循环的次数?全部内容,希望文章能够帮你解决c# – 如何计算故事板动画循环的次数?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。