WPF VB.Net Tutorial

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="450" Width="300">
    
        
            
                
                    
                                                            CurrentTimeInvalidated="Storyboard_Changed">
                                                             Storyboard.TargetName="meMediaElement"
                                 RepeatBehavior="Forever" />
                        
                    
                

            
            
                
                    
                

            
            
                
                    
                

            
            
                
                    
                

            
                                          SourceName="sldPosition" >
                
            
                                          SourceName="sldPosition" >
                
            
        

                              Margin="5" MinHeight="300" Stretch="Fill"
                      MediaOpened="MediaOpened" />
        
        
        
        
                        Name="sldPosition" Width="250"
                ValueChanged="sldPosition_ValueChanged">
        
        
        
        
        
    

//File:Window.xaml.vb
Imports System
Imports System.Windows
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Animation
Namespace WpfApplication1
  Public Partial Class Window1
    Inherits Window
    Private ignoreValueChanged As Boolean = False
    Public Sub New()
      InitializeComponent()
    End Sub
    Private Sub MediaOpened(sender As Object, e As EventArgs)
      sldPosition.Maximum = meMediaElement.NaturalDuration.TimeSpan.TotalMilliseconds
    End Sub
    Private Sub Storyboard_Changed(sender As Object, e As EventArgs)
      Dim clockGroup As ClockGroup = TryCast(sender, ClockGroup)
      Dim mediaClock As MediaClock = TryCast(clockGroup.Children(0), MediaClock)
      If mediaClock.CurrentProgress.HasValue Then
        ignoreValueChanged = True
        sldPosition.Value = meMediaElement.Position.TotalMilliseconds
        ignoreValueChanged = False
      End If
    End Sub
    Private Sub sldPosition_ValueChanged(sender As Object, e As RoutedPropertyChangedEventArgs(Of Double))
      If ignoreValueChanged Then
        Return
      End If
      Storyboard.Seek(Panel, TimeSpan.FromMilliseconds(sldPosition.Value), TimeSeekOrigin.BeginTime)
    End Sub
  End Class
End Namespace