A simple, finite animation
<Window x:Class="Holding.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="FillingExample" Height="300" Width="300"> <Canvas> <Ellipse Name="myEllipse" Height="100" Fill="Red"> <Ellipse.Triggers> <EventTrigger RoutedEvent="Ellipse.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimation BeginTime="0:0:2" Duration="0:0:5" Storyboard.TargetProperty="(Ellipse.Width)" From="10" To="300" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Ellipse.Triggers> </Ellipse> </Canvas> </Window> //File:Window.xaml.vb Imports System Imports System.Windows Imports System.Windows.Threading Imports System.Diagnostics Namespace Holding Public Partial Class Window1 Inherits Window Private t As New DispatcherTimer() Private start As DateTime Public Sub New() InitializeComponent() AddHandler t.Tick, New EventHandler(AddressOf OnTimerTick) t.Interval = TimeSpan.FromSeconds(0.5) t.Start() start = DateTime.Now End Sub Private Sub OnTimerTick(sender As Object, e As EventArgs) Dim elapsedTime As TimeSpan = DateTime.Now - start Debug.WriteLine((elapsedTime.ToString() & ": ") + myEllipse.Width) End Sub End Class End Namespace