|
|
Questions and answers for Graphics and Multimedia Animation and Timing.
|
27. Graphics and Multimedia Animation and Timing
|
| 27.1
When an animation is applied, the property value gets overwritten. How do we
prevent the value of property ?
|
| 27.2
Performance gets reduced even after navigating away from a page that contains
animation. How do we handle this issue ?
|
| 27.3
How do I apply an animation without using a storyboard ?
|
27.1 When an animation is applied, the property value gets overwritten. How do
we prevent the value of property ?
|
|
he value of the property on which the animation is applied is overwritten to
'To' value of the animation because the animation has higher precedence but
this can be prevented using the "FillBehavior" property of the animation. By
default, FillBehavior has a value 'HoldEnd' which causes the value of the
property to be overwritten to the value when the animation completes. By
setting the FillBehavior value to 'Stop' will prevent overwriting the property
value.
|
27.2 Performance gets reduced even after navigating away from a page that
contains animation. How do we handle this issue ?
|
|
The scenario is such that the animations in the page will continue to play until
it is garbage collected, even when the page is navigated away to another page
holding the memory and system resources for animation. There will be severe
drop in performance when more animations are running in a page. To overcome
this issue, "Unloaded" event of the page can be used to remove the animations
from the page such that the animations don't consume memory and system
resources.
|
27.3 How do I apply an animation without using a storyboard ?
|
|
Animations can be applied without using the StoryBoard. BeginAnimation() method
can be used to apply animations instead of StoryBoard. This method can be used
when simple animations are applied to a property of a control.
The following code snippet animates the width of the TextBlock using the
'BeginAnimation' method.
|
[C#]
DoubleAnimation Dblanimation = new DoubleAnimation();
Dblanimation.From = 25;
Dblanimation.To = 50;
Dblanimation.Duration = new Duration(TimeSpan.FromSeconds(3));
tb.BeginAnimation(TextBlock.WidthProperty, Dblanimation);
|
|