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

时间:2014-03-06 20:35:09

标签: c# wpf c#-4.0 .net-4.0 storyboard

之前我制作了许多不同的故事板,但出于某种原因,这是我第一次真正注意到视觉错误而且如果我没有从高处抱怨它就不会注意到它。

首先,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> 没有任何复杂的事情发生的简单发光效果

{{1}}

如果我点击窗口上的按钮但不放手动画继续进行。我尝试了不同的行为,无论动画是什么继续。但是有人发现,当你单击窗口右上角的窗口关闭按钮但是按住鼠标时,每个动画都有Forever或者当前正在迭代的动画(比如15秒动画长仍然是动画)它们都会冻结,如果你在释放它之前将鼠标移动到关闭按钮之外,然后在动画时从随机点重新启动Forever重新启动它的所有动画,而不是在冻结之前它们的位置。

我创建了一个空项目,我也得到了这种行为。所以在安装了应用程序的机器上和开发机器上的行为相同,所以我很困惑。有没有人注意过这个?有没有人找到过修复?

1 个答案:

答案 0 :(得分:0)

当您使用CompositionTarget.Rendering进行动画处理时也会发生这种情况。

你看到的是标准的窗户行为。发生的事情是,当您按住关闭按钮时,窗口会阻止窗口上的所有绘图操作。你的动画并没有真正停止,它们只是没有反映在窗口上。当您释放按钮时,元素的绘制方式与您在该时间点的绘制方式完全无关。如果没有冻结窗口。

您也可以使用浏览器进行测试。如果您按住关闭按钮in this page,您将看到滚动冻结,然后稍后重新开始。所以告诉你'高',除非他们认识微软的人,那只是Windows。我不知道其他操作系统是否以相同的方式工作。

也许有人可以解释为什么Windows会这样运作,但我认为这是一个很好的理由。