wpf FrameworkElement.width 动画

wpf FrameworkElement.width Animation

我将矩形放在 wpf 的 Canvas 上。 我们使用 "FrameworkElement.With" 为这个矩形赋予了 doubleAnimation。 如果您在完成动画后尝试更改矩形宽度,它不会改变。 你能猜出为什么吗?

动画会改变并保持较高优先级的值,因此您的正常设置值将不起作用。您可以阅读 Microsoft 文档以了解有关 Dependency 属性 Value Precedence.

的更多详细信息

您有两种不同的方法来更改动画 属性 值。

第一。不要分配动画 To 属性

如果您按照下面的这种方式创建动画,则需要删除 To 属性.

<DoubleAnimation Storyboard.TargetName="element" Storyboard.TargetProperty="Width"
                 From="0" To="100" Duration="0:0:1" />

移除To.

<DoubleAnimation Storyboard.TargetName="element" Storyboard.TargetProperty="Width"
                 From="0" Duration="0:0:1" />

当你试图开始动画时,像这样调用:

storyboard.Begin();
element.Width = 100;

通过这种方式,您的故事板将开始,然后将您的 Width 设置为您最后设定的值。

第二。从 Width 属性

中删除动画

每次故事板或动画完成时,开始另一个 null 动画以移除 Width 属性.

的较高优先级值
element.BeginAnimation(WidthProperty, null);