当鼠标左键点击并按住时重复动画冻结
问题描述:
我之前制作了许多不同的故事板,但由于某种原因,这是我第一次注意到视觉bug,如果我没有从较高的位置抱怨,关于它。当鼠标左键点击并按住时重复动画冻结
首先我有一个Label
没有什么复杂的上的Loaded
事件
<Label Name="lblFullName" Margin="-10,0,0,0" Foreground="Green" FontWeight="DemiBold" FontSize="14">
<Label.Effect>
<DropShadowEffect x:Name="myDropEffect" BlurRadius="6" ShadowDepth="0" Color="GreenYellow" Opacity="0" />
</Label.Effect>
<Label.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="myDropEffect"
Storyboard.TargetProperty="Opacity"
From="0" To="0.8" Duration="0:0:0.5"
AutoReverse="True" RepeatBehavior="Forever"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Label.Triggers>
</Label>
开始运行下去,如果我点击窗口上的一个按钮,但不放手动画坚持去做一个简单的发光效果。我尝试了不同的行为,我可以尝试,不管动画如何继续。但有人发现,当你点击窗口右上角的窗口关闭按钮,但按住鼠标时,Forever或仍在进行迭代的每个动画(如15秒动画长时间仍然动画)都会冻结,如果你在释放它之前将鼠标移动到关闭按钮之外,然后释放所有动画,永久从动画的随机点重新开始,而不是冻结前的位置。
我创建了一个空项目,我也得到了这种行为。因此,在安装了应用程序的计算机上以及在开发计算机上的相同行为中,所以我很困惑。任何人都注意到这一点?任何人都找到解决办法?
答
当您使用CompositionTarget.Rendering
进行动画制作时也会发生这种情况。
你看到的是一个标准的窗户行为。正在发生的事情是,当你按住关闭按钮时,窗口会阻止窗口上的所有绘图操作。你的动画并不真的停止,它们只是没有反映在窗口上。当你释放按钮时,元素将按照他们在那个时间点的方式绘制,而不是你冻结窗口。
你也可以用浏览器测试这个工程。如果您按住关闭按钮in this page,您将选择滚动冻结,然后稍后恢复。所以告诉你“高点”,除非他们认识微软的人,那只是Windows。我不知道其他操作系统是否以相同的方式工作。
也许有人可以解释为什么窗户的工作方式,但我想有一个很好的理由。
我确实开始认为刷新只是暂停,但一切工作如预期。就像你描述的那样,我应该告诉他们问题是什么:)。但我渴望知道是否有人可以解释为什么会发生这种情况。 – Franck