当鼠标左键点击并按住时重复动画冻结

问题描述:

我之前制作了许多不同的故事板,但由于某种原因,这是我第一次注意到视觉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。我不知道其他操作系统是否以相同的方式工作。

也许有人可以解释为什么窗户的工作方式,但我想有一个很好的理由。

+0

我确实开始认为刷新只是暂停,但一切工作如预期。就像你描述的那样,我应该告诉他们问题是什么:)。但我渴望知道是否有人可以解释为什么会发生这种情况。 – Franck