Free Trial
Web API version
Licensing
Request A Quote
HAVE QUESTIONS OR NEED HELP? SUBMIT THE SUPPORT REQUEST FORM or write email to SUPPORT@BYTESCOUT.COM
WPF UI Barcode Reading Example | VB.NET
Application.xaml.vb:
VB
Class Application ' Application-level events, such as Startup, Exit, and DispatcherUnhandledException ' can be handled in this file. End Class
MainWindow.xaml.vb:
VB
Imports System.Text Imports Bytescout.BarCodeReader Class MainWindow ' Select image file Private Sub btnBrowse_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnBrowse.Click Dim dlg = New Microsoft.Win32.OpenFileDialog dlg.Filter = "Supported formats (*.bmp;*.gif;*.tif;*.png;*.jpg;*.pdf)|*.bmp;*.gif;*.tif;*.tiff;*.png;*.jpg;*.jpeg;*.pdf|All Files|*.*" If dlg.ShowDialog() = True Then tbFileName.Text = dlg.FileName tbFoundBarcodes.Text = "" imageContainer.Source = Nothing Try Dim bitmapImage = New BitmapImage() bitmapImage.BeginInit() bitmapImage.UriSource = New Uri(dlg.FileName, UriKind.Absolute) bitmapImage.EndInit() imageContainer.Source = bitmapImage Catch ex As Exception End Try End If End Sub Private Sub btnDecode_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnDecode.Click ' Create barcode reader instance Dim reader = New Reader() reader.RegistrationName = "demo" reader.RegistrationKey = "demo" ' Specify barcode types to find reader.BarcodeTypesToFind.All = True ' Select specific barcode types to speed up the decoding process and avoid false positives. ' Show wait cursor Mouse.OverrideCursor = Cursors.Wait ' ----------------------------------------------------------------------- ' NOTE: We can read barcodes from specific page to increase performance . ' For sample please refer to "Decoding barcodes from PDF by pages" program. ' ----------------------------------------------------------------------- Try ' Search for barcodes reader.ReadFrom(tbFileName.Text) Finally Mouse.OverrideCursor = Nothing End Try ' Display found barcode inforamtion: Dim stringBuilder = New StringBuilder() For i As Integer = 0 To reader.FoundBarcodes.Length - 1 Dim barcode = reader.FoundBarcodes(i) stringBuilder.AppendFormat("{0}) Type: {1}; Value: {2}.\r\n", i + 1, barcode.Type, barcode.Value) Next tbFoundBarcodes.Text = stringBuilder.ToString() End Sub End Class
MyWpfExtension.vb:
VB
#If _MyType <> "Empty" Then Namespace My ''' <summary> ''' Module used to define the properties that are available in the My Namespace for WPF ''' </summary> ''' <remarks></remarks> <Global.Microsoft.VisualBasic.HideModuleName()> _ Module MyWpfExtension Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.Computer) Private s_User As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.ApplicationServices.User) Private s_Windows As New ThreadSafeObjectProvider(Of MyWindows) Private s_Log As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Logging.Log) ''' <summary> ''' Returns the application object for the running application ''' </summary> <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _ Friend ReadOnly Property Application() As Application Get Return CType(Global.System.Windows.Application.Current, Application) End Get End Property ''' <summary> ''' Returns information about the host computer. ''' </summary> <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _ Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.Computer Get Return s_Computer.GetInstance() End Get End Property ''' <summary> ''' Returns information for the current user. If you wish to run the application with the current ''' Windows user credentials, call My.User.InitializeWithWindowsUser(). ''' </summary> <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _ Friend ReadOnly Property User() As Global.Microsoft.VisualBasic.ApplicationServices.User Get Return s_User.GetInstance() End Get End Property ''' <summary> ''' Returns the application log. The listeners can be configured by the application's configuration file. ''' </summary> <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _ Friend ReadOnly Property Log() As Global.Microsoft.VisualBasic.Logging.Log Get Return s_Log.GetInstance() End Get End Property ''' <summary> ''' Returns the collection of Windows defined in the project. ''' </summary> <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _ Friend ReadOnly Property Windows() As MyWindows <Global.System.Diagnostics.DebuggerHidden()> _ Get Return s_Windows.GetInstance() End Get End Property <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Never)> _ <Global.Microsoft.VisualBasic.MyGroupCollection("System.Windows.Window", "Create__Instance__", "Dispose__Instance__", "My.MyWpfExtenstionModule.Windows")> _ Friend NotInheritable Class MyWindows <Global.System.Diagnostics.DebuggerHidden()> _ Private Shared Function Create__Instance__(Of T As {New, Global.System.Windows.Window})(ByVal Instance As T) As T If Instance Is Nothing Then If s_WindowBeingCreated IsNot Nothing Then If s_WindowBeingCreated.ContainsKey(GetType(T)) = True Then Throw New Global.System.InvalidOperationException("The window cannot be accessed via My.Windows from the Window constructor.") End If Else s_WindowBeingCreated = New Global.System.Collections.Hashtable() End If s_WindowBeingCreated.Add(GetType(T), Nothing) Return New T() s_WindowBeingCreated.Remove(GetType(T)) Else Return Instance End If End Function <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _ <Global.System.Diagnostics.DebuggerHidden()> _ Private Sub Dispose__Instance__(Of T As Global.System.Windows.Window)(ByRef instance As T) instance = Nothing End Sub <Global.System.Diagnostics.DebuggerHidden()> _ <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Never)> _ Public Sub New() MyBase.New() End Sub <Global.System.ThreadStatic()> Private Shared s_WindowBeingCreated As Global.System.Collections.Hashtable <Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function Equals(ByVal o As Object) As Boolean Return MyBase.Equals(o) End Function <Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function GetHashCode() As Integer Return MyBase.GetHashCode End Function <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _ <Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> _ Friend Overloads Function [GetType]() As Global.System.Type Return GetType(MyWindows) End Function <Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function ToString() As String Return MyBase.ToString End Function End Class End Module End Namespace Partial Class Application Inherits Global.System.Windows.Application <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _ <Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _ Friend ReadOnly Property Info() As Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo <Global.System.Diagnostics.DebuggerHidden()> _ Get Return New Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo(Global.System.Reflection.Assembly.GetExecutingAssembly()) End Get End Property End Class #End If