Storyboard.SetTarget Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Causes the specified Timeline to target the specified object.
Assembly: System.Windows (in System.Windows.dll)
'Declaration Public Shared Sub SetTarget ( _ timeline As Timeline, _ target As DependencyObject _ )
Parameters
- timeline
- Type: System.Windows.Media.Animation.Timeline
The timeline that targets the specified dependency object.
- target
- Type: System.Windows.DependencyObject
The actual instance of the object to target.
| Exception | Condition |
|---|---|
| ArgumentNullException | One or more of the parameters is Nothing. |
As with SetTargetName, the user is still required to hook up the desired property using SetTargetProperty for the animation. This is the same model as XAML: specify a target as well as a target property. The difference with the code model is that SetTarget sets the target by using an object reference, whereas XAML (and SetTargetName) sets the target by referencing an x:Name on that object.
The following example shows how to create a Storyboard using code.
Private Sub Create_And_Run_Animation(ByVal sender As Object, ByVal e As EventArgs) ' Create a red rectangle that will be the target ' of the animation. Dim myRectangle As Rectangle = New Rectangle myRectangle.Width = 200 myRectangle.Height = 200 Dim myColor As Color = Color.FromArgb(255, 255, 0, 0) Dim myBrush As SolidColorBrush = New SolidColorBrush myBrush.Color = myColor myRectangle.Fill = myBrush ' Add the rectangle to the tree. LayoutRoot.Children.Add(myRectangle) ' Create a duration of 2 seconds. Dim duration As Duration = New Duration(TimeSpan.FromSeconds(2)) ' Create two DoubleAnimations and set their properties. Dim myDoubleAnimation1 As DoubleAnimation = New DoubleAnimation Dim myDoubleAnimation2 As DoubleAnimation = New DoubleAnimation myDoubleAnimation1.Duration = duration myDoubleAnimation2.Duration = duration Dim sb As Storyboard = New Storyboard sb.Duration = duration sb.Children.Add(myDoubleAnimation1) sb.Children.Add(myDoubleAnimation2) Storyboard.SetTarget(myDoubleAnimation1, myRectangle) Storyboard.SetTarget(myDoubleAnimation2, myRectangle) ' Set the attached properties of Canvas.Left and Canvas.Top ' to be the target properties of the two respective DoubleAnimations Storyboard.SetTargetProperty(myDoubleAnimation1, New PropertyPath("(Canvas.Left)")) Storyboard.SetTargetProperty(myDoubleAnimation2, New PropertyPath("(Canvas.Top)")) myDoubleAnimation1.To = 200 myDoubleAnimation2.To = 200 ' Make the Storyboard a resource. LayoutRoot.Resources.Add("unique_id", sb) ' Begin the animation. sb.Begin() End Sub