我有一个样式触发器,可以在鼠标悬停在图像上时(实际上是图像周围的边框)展开图像,并在移开图像时收缩。这是通过动画比例变换完成的。
但是,如果鼠标移出正在扩展的图像但仍在扩展区域内,则在鼠标悬停动画完成之前,将不断触发扩展和收缩动画,从而导致图像在扩展和收缩之间闪烁。 / p>
SELECT A.MetalID,SUM(B.ElctrctyConsumed) TotalConsumed
FROM Metal_Master_Data A
INNER JOIN Metal_Interval_Data B ON A.MetalID = B.MetalID
WHERE B.ReadingTime BETWEEN DATEADD(HH,-1,A.MetalEndActual)
AND A.MetalEndActual and A.MetalID=@givenmetalid
GROUP BY A.MetalID
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Duration="0:0:0.5" To="2.5" Storyboard.TargetProperty="BorderThickness" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1" To="1.2" Duration="0:0:0.5" AccelerationRatio="0.2" DecelerationRatio="0.4"/>
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1" To="1.2" Duration="0:0:0.5" AccelerationRatio="0.2" DecelerationRatio="0.4"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Duration="0:0:0.5" To="1.5" Storyboard.TargetProperty="BorderThickness" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX" From="1.2" To="1" Duration="0:0:0.5" AccelerationRatio="0.2" DecelerationRatio="0.4"/>
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY" From="1.2" To="1" Duration="0:0:0.5" AccelerationRatio="0.2" DecelerationRatio="0.4"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
是否可以通过某种方式停止动画的递归触发,从而停止图像尺寸的连续变化?
答案 0 :(得分:0)
就在发布问题之后,我看了一段慢动作视频,了解正在发生的事情,并弄清正在发生的事情以及如何解决它。
问题出在动画起点的第二次(及后续)调用上。
他们认为以前的动画没有完成就可以了。因此,通过删除动画中的“ From”子句,他们从当前缩放比例开始,从而解决了问题。