事件触发器(WPF)的奇怪行为
本文关键字:触发器 WPF 事件 | 更新日期: 2023-09-27 18:15:43
考虑以下示例(取自MSDN示例)
<Style TargetType="Rectangle">
<Style.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="300" Duration="0:0:1.5"
AccelerationRatio="0.10" DecelerationRatio="0.25"
Storyboard.TargetProperty="(Canvas.Width)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:1.5"
AccelerationRatio="0.10" DecelerationRatio="0.25"
Storyboard.TargetProperty="(Canvas.Width)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
有2个动画,一个用于鼠标进入事件,另一个用于鼠标离开事件。
注意,在鼠标离开事件的动画中,只指定了持续时间。没有从/到。指定By。DoubleAnimation中指定From/To/By的remark部分必须指定。我的问题是这个动画是如何工作的?是否考虑矩形的原始值作为动画的To
值
通过转换回默认值来工作。您引用的表仅指定了当使用from/to/by的各种组合时的行为。
每个故事板都是独立的,所以它们不会跟踪其他故事板所做的事情,所以第一个故事板会转换到定义的宽度,第二个故事板会转换回原始值。