在其中一个模块中,我看到设置了以下样式。
<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>
</Style.Triggers>
</Style>
请注意,TargetType
是Rectangle
同时,Storyboard.TargetProperty
是Canvas.Width
。样式/触发器仍然正常工作。它正在为Rectangle.width
属性设置动画。
我知道在 Storyboard.TargetProperty(或 XAML 中的任何其他地方)中,我们必须使用PropertyPath 语法,就像(ownerType.PropertyName)
.
我的问题是如何设置动画Canvas.Width
是动画Rectangle.Width
- 是不是因为Canvas.Width、Rectangle.Width 或FrameworkElement.Width 都指向FrameowrkElement.Width 属性,因为Width 是在FrameworkElement 中定义的,而Canvas/Rectangle 都是从它派生的。
- 还是因为通过继承,Canvas 和 Rectangle 都成为了依赖属性的所有者。