I put my rectangle on the Canvas at the wpf. We gave doubleAnimation using "FrameworkElement.With" to this rectangle. If you try to change the rectangle width after completing the animation, it does not change. Can you guess why?
The animation will change and keep the value with a higher priority, so your normal set value will not work. You can read Microsoft docs for more details about the Dependency Property Value Precedence.
You have two different methods to change your animated property value.
To
propertyIf you create your animation in this way below, you need to remove the To
property.
<DoubleAnimation Storyboard.TargetName="element" Storyboard.TargetProperty="Width"
From="0" To="100" Duration="0:0:1" />
Remove To
.
<DoubleAnimation Storyboard.TargetName="element" Storyboard.TargetProperty="Width"
From="0" Duration="0:0:1" />
When you're trying to begin the animation, call like this:
storyboard.Begin();
element.Width = 100;
In this way, your storyboard will begin and then animated your Width
to your last set value.
Width
propertyEvery time your storyboard or animation completed, begin another null
animation to remove the higher priority value of Width
property.
element.BeginAnimation(WidthProperty, null);