Velocity animation : Speed Animation « Windows Presentation Foundation « VB.Net Tutorial






<Page x:Class="Microsoft.Samples.PerFrameAnimations.FrameIndependentFollowExample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <Canvas x:Name="containerCanvas" Background="Transparent">
    <Rectangle x:Name="followRectangle" Canvas.Left="0" Canvas.Top="0" 
      Fill="red" Width="50" Height="50" />
  </Canvas>
</Page>
//File:Window.xaml.vb


Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Media
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports System.Windows.Media.Animation

Namespace Microsoft.Samples.PerFrameAnimations
  Public Partial Class FrameIndependentFollowExample
    Inherits Page
    Private _rectangleVelocity As New Vector(0, 0)
    Private _lastMousePosition As New Point(500, 500)

    Private _lastRender As TimeSpan

    Public Sub New()
      MyBase.New()
      _lastRender = TimeSpan.FromTicks(DateTime.Now.Ticks)
      AddHandler CompositionTarget.Rendering, AddressOf UpdateRectangle
    End Sub

    Private Sub UpdateRectangle(sender As Object, e As EventArgs)
      Dim renderArgs As RenderingEventArgs = DirectCast(e, RenderingEventArgs)
      Dim deltaTime As [Double] = (renderArgs.RenderingTime - _lastRender).TotalSeconds
      _lastRender = renderArgs.RenderingTime

      Dim location As New Point(0, 0)

      Dim toMouse As Vector = _lastMousePosition - location

      Dim followForce As Double = 1.0
      _rectangleVelocity += toMouse * followForce

      Dim drag As Double = 0.9
      _rectangleVelocity *= drag

      location += _rectangleVelocity * deltaTime

      Canvas.SetLeft(followRectangle, location.X)
      Canvas.SetTop(followRectangle, location.Y)
    End Sub
  End Class
End Namespace
WPF Velocity Animation








16.111.Speed Animation
16.111.1.Velocity animationVelocity animation
16.111.2.Paced AnimationPaced Animation