WPF故事板自然结束了,还是被打断了?

时间:2015-06-13 21:10:15

标签: wpf animation triggers storyboard

背景:我正在使用眼动追踪创建应用程序。为了防止按钮在短时间内无意中被激活,我希望在用户的按钮登陆按钮和激活按钮之间引入延迟。

我创建了一个动画,从左到右为按钮着色,为用户提供视觉反馈,如下面的数字' 6' (忽略红点,它们是跟踪未能正常显示的标记)。如果用户在超时之前向外看,则该按钮不会被激活;如果他们的注视在超时结束时仍然在按钮上,则按钮被激活。

没有发布图片的声誉;它位于http://i.stack.imgur.com/fu3j7.jpg

当我使用动画向用户提供视觉反馈时,从动画完成中触发按钮激活似乎是明智的。

动画按如下方式触发:

<Style.Triggers>
 <Trigger Property="**attached property providing gaze notification**" Value="True">
  <Trigger.EnterActions>
   <BeginStoryboard Storyboard="{StaticResource AnimateButton}" />
  </Trigger.EnterActions>
  <Trigger.ExitActions>
   <BeginStoryboard>
    **storyboard to return button to normal**
   </BeginStoryboard>
  </Trigger.ExitActions>
 </Trigger>
</Style.Triggers>

故事板在Window的资源中定义,并指定了Completed事件处理程序。在处理程序中,我正在打印Debug.WriteLine(((AnimationClock)sender).CurrentTime);。无论用户是否立即远离按钮,或者保持足够长的时间(当前为0.5秒)以激活按钮,打印的值为00:00:00.5000000。查看时钟实例的其他字段也不会给出任何提示。

所以,在所有的阐述之后,问题是:是否有一种方法可以确定动画是否完全自动完成,或者是否被Trigger.ExitActions启动的故事板中断了/ em>的

我的另一种方法是挂钩附加属性,提供更改凝视通知,启动计时器与动画相同的时间长度,然后检查按钮在此之后是否仍然有凝视,但我更喜欢动画 - 驱动方法是否可行。

谢谢。

0 个答案:

没有答案