我把我的矩形放在 wpf 的画布上。我们使用“FrameworkElement.With”为这个矩形提供了 doubleAnimation。如果您在完成动画后尝试更改矩形宽度,它不会更改。你能猜到为什么吗?
问问题
160 次
1 回答
0
动画会改变并保持较高优先级的值,因此您的正常设置值将不起作用。您可以阅读 Microsoft 文档以获取有关Dependency Property 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);
于 2018-09-12T11:57:08.950 回答