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="100" Width="200">
    
        
        
            Start
        
    


//File:Window.xaml.vb
Imports System.ComponentModel
Imports System.Threading
Imports System.Windows
Imports System.Windows.Input
Namespace WpfApplication1
  Public Partial Class Window1
    Inherits Window
    Private worker As New BackgroundWorker()
    Public Sub New()
      InitializeComponent()
      worker.WorkerReportsProgress = True
      worker.WorkerSupportsCancellation = True
      AddHandler worker.DoWork, New DoWorkEventHandler(AddressOf worker_DoWork)
      AddHandler worker.RunWorkerCompleted, New RunWorkerCompletedEventHandler(AddressOf worker_RunWorkerCompleted)
      AddHandler worker.ProgressChanged, AddressOf worker_ProgressChanged
    End Sub
    Private Sub button_Click(sender As Object, e As RoutedEventArgs)
      If Not worker.IsBusy Then
        Me.Cursor = Cursors.Wait
        worker.RunWorkerAsync()
        button.Content = "Cancel"
      Else
        worker.CancelAsync()
      End If
    End Sub
    Private Sub worker_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
      Me.Cursor = Cursors.Arrow
      If e.Cancelled Then
        MessageBox.Show("Operation was canceled")
      ElseIf e.[Error] IsNot Nothing Then
        MessageBox.Show(e.[Error].Message)
      End If
      button.Content = "Start"
    End Sub
    Private Sub worker_DoWork(sender As Object, e As DoWorkEventArgs)
      For i As Integer = 1 To 100
        If worker.CancellationPending Then
          e.Cancel = True
          Return
        End If
        Thread.Sleep(100)
        worker.ReportProgress(i)
      Next
    End Sub
    Private Sub worker_ProgressChanged(sender As Object, e As ProgressChangedEventArgs)
      progressBar.Value = e.ProgressPercentage
    End Sub
  End Class
End Namespace