Wie man einen QR-Code-Scanner in WPF baut

This article was translated from English: Does it need improvement?
Translated
View the article in English

Windows Presentation Foundation (WPF) ist ein .NET-Framework zum Erstellen von Windows-Desktop-Anwendungen mit XAML-definierten Benutzeroberflächen. IronQR integriert sich direkt in WPF, wodurch das Scannen von QR-Codes aus vom Benutzer ausgewählten Bilddateien mit nur wenigen Zeilen C# ermöglicht wird.

In diesem Leitfaden erstellen wir eine WPF-Anwendung, die einen Dateidialog öffnet, ein ausgewähltes Bild lädt und einen eingebetteten QR-Code mit IronQR dekodiert. Der Ansatz unterstützt PNG, JPEG, BMP, GIF, TIFF und andere gängige Bildformate.

Voraussetzungen

  1. Visual Studio 2022 mit installiertem .NET-Desktop-Entwicklung-Arbeitslast
  2. Ein WPF-Projekt for .NET 8 oder neuer

IronQR installieren

Installieren Sie die IronQR-Bibliothek mithilfe der NuGet-Paket-Manager-Konsole in Visual Studio. Navigieren Sie zu Tools > NuGet-Paketmanager > Paketmanager-Konsole und führen Sie aus:

Install-Package IronQR

Alternativ können Sie auf NuGet nach IronQR suchen und die neueste Version installieren.

WPF-Fenster-Layout

Die Benutzeroberfläche des Scanners verwendet ein Button, um den Dateidialog zu öffnen, und ein TextBlock, um das decodierte Ergebnis anzuzeigen. Fügen Sie den folgenden Markup-Code zu MainWindow.xaml hinzu:

<StackPanel Margin="28" VerticalAlignment="Center">

    <TextBlock Text="WPF QR Code Scanner" FontSize="20" FontWeight="Bold" Margin="0,0,0,16"/>

    <Button x:Name="ScanButton"
            Content="Select Image and Scan QR Code"
            Click="OnScanButtonClicked"
            Padding="12,8"
            Margin="0,0,0,16"
            HorizontalAlignment="Left"/>

    <TextBlock x:Name="ResultLabel"
               Text="Select an image to scan."
               TextWrapping="Wrap"
               FontSize="14"/>

</StackPanel>
<StackPanel Margin="28" VerticalAlignment="Center">

    <TextBlock Text="WPF QR Code Scanner" FontSize="20" FontWeight="Bold" Margin="0,0,0,16"/>

    <Button x:Name="ScanButton"
            Content="Select Image and Scan QR Code"
            Click="OnScanButtonClicked"
            Padding="12,8"
            Margin="0,0,0,16"
            HorizontalAlignment="Left"/>

    <TextBlock x:Name="ResultLabel"
               Text="Select an image to scan."
               TextWrapping="Wrap"
               FontSize="14"/>

</StackPanel>
XML

Beispielformat

Verwenden Sie den untenstehenden QR-Code als Testbild. Speichern Sie es auf Ihrem Gerät, wählen Sie es über den Dateidialog aus und klicken Sie auf Bild auswählen und QR-Code scannen. Der dekodierte Wert sollte als https://ironsoftware.com angezeigt werden.

Sample QR code encoding https://ironsoftware.com for testing the WPF QR scanner

Beispiel-QR-Code — kodiert https://ironsoftware.com

QR-Code-Scannen mit IronQR

Wenn die Schaltfläche angeklickt wird, öffnet OnScanButtonClicked einen Dateidialog zur Auswahl eines Bildes. Die ausgewählte Datei wird in AnyBitmap geladen, an QrReader.Read übergeben und der erste dekodierte Wert wird in ResultLabel geschrieben.

Fügen Sie die folgende OnScanButtonClicked-Methode zu MainWindow.xaml.cs hinzu:

:path=/static-assets/qr/content-code-examples/get-started/wpf-qr-code-scanner.cs
using IronQr;
using IronSoftware.Drawing;
using Microsoft.Win32;
using System.Windows;

private void OnScanButtonClicked(object sender, RoutedEventArgs e)
{
    // Open a file dialog to select a QR code image
    var dialog = new OpenFileDialog
    {
        Title = "Select a QR code image",
        Filter = "Image Files|*.png;*.jpg;*.jpeg;*.bmp;*.gif;*.tiff"
    };

    if (dialog.ShowDialog() != true) return;

    var imageSource = dialog.FileName;

    // Load the image into IronQR
    var inputBmp = AnyBitmap.FromFile(imageSource);

    // Load the asset into QrImageInput
    QrImageInput imageInput = new QrImageInput(inputBmp);

    // Create a QR Reader object
    QrReader reader = new QrReader();

    // Read the input and get all embedded QR Codes
    IEnumerable<QrResult> results = reader.Read(imageInput);

    // Display the first result
    var firstResult = results.FirstOrDefault();
    ResultLabel.Text = firstResult != null
        ? "Scanned Text: " + firstResult.Value
        : "No QR code found in the selected image.";
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.Win32
Imports System.Windows

Private Sub OnScanButtonClicked(sender As Object, e As RoutedEventArgs)
    ' Open a file dialog to select a QR code image
    Dim dialog As New OpenFileDialog With {
        .Title = "Select a QR code image",
        .Filter = "Image Files|*.png;*.jpg;*.jpeg;*.bmp;*.gif;*.tiff"
    }

    If dialog.ShowDialog() <> True Then Return

    Dim imageSource As String = dialog.FileName

    ' Load the image into IronQR
    Dim inputBmp As AnyBitmap = AnyBitmap.FromFile(imageSource)

    ' Load the asset into QrImageInput
    Dim imageInput As New QrImageInput(inputBmp)

    ' Create a QR Reader object
    Dim reader As New QrReader()

    ' Read the input and get all embedded QR Codes
    Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)

    ' Display the first result
    Dim firstResult As QrResult = results.FirstOrDefault()
    ResultLabel.Text = If(firstResult IsNot Nothing, "Scanned Text: " & firstResult.Value, "No QR code found in the selected image.")
End Sub
$vbLabelText   $csharpLabel

OpenFileDialog bietet eine native Windows-Dateiauswahl, die auf gängige Bildformate gefiltert ist. AnyBitmap.FromFile übernimmt die Formatdecodierung für PNG-, JPEG-, BMP-, GIF- und TIFF-Eingaben, während QrReader.Read ein IEnumerable<QrResult> zurückgibt, das einen Eintrag pro erkanntem QR-Code enthält. FirstOrDefault gibt sicher null zurück, wenn kein QR-Code gefunden wird, wodurch Ausnahmen bei Bildern ohne gültigen Code vermieden werden.

Ausgabe

Nach Auswahl eines QR-Code-Bildes und Anklicken der Scan-Schaltfläche erscheint der decodierte Wert im Feld TextBlock unterhalb der Schaltfläche.

WPF QR Code Scanner using IronQR — decoded result displayed in the window

Dekodierter QR-Code-Wert im WPF-Fenster angezeigt

Downloaden Sie das Projekt

Klicken Sie hier, um das komplette WpfQrScanner-Projekt herunterzuladen.

Abschluss

IronQR lässt sich mit minimalem Aufwand in eine WPF-Anwendung integrieren – ein einziger Aufruf von QrReader.Read übernimmt die gesamte Dekodierungspipeline auf dem Desktop. Um mehrere QR-Codes aus einem einzigen Bild zu scannen, durchlaufen Sie die gesamte Ergebnissammlung, anstatt FirstOrDefault aufzurufen.

Dieses Muster erstreckt sich auch auf Batch-Verarbeitung, indem durch ein Verzeichnis von Bilddateien iteriert wird, oder auf Echtzeit-Scannen durch das Aufnehmen von Frames von einem Webcam-Feed mit einem WPF-Medienelement.

Für mehr Informationen zum Lesen von QR-Codes und den verfügbaren Scanmodi, siehe die Lesen von QR-Codes aus Bild und Lesen von QR-Codes mit Scanmodi Anleitungen.

Häufig gestellte Fragen

Worum geht es im WPF QR Code Scanner Tutorial?

Das WPF QR Code Scanner Tutorial bietet eine Schritt-für-Schritt-Anleitung zum Erstellen eines QR-Code-Scanners mit IronQR. Es erklärt, wie man den OpenFileDialog für die Bildauswahl und QrReader.Read für das Dekodieren von QR-Codes in einer Windows-Desktop-Anwendung verwendet.

Wie erleichtert IronQR das QR-Code-Scannen in einer WPF-Anwendung?

IronQR vereinfacht das QR-Code-Scannen in einer WPF-Anwendung, indem es Tools wie QrReader.Read bereitstellt, die QR-Codes aus über OpenFileDialog ausgewählten Bildern effizient dekodieren.

Was sind die Hauptkomponenten beim Erstellen eines QR-Code-Scanners in WPF?

Die Hauptkomponenten für das Erstellen eines QR-Code-Scanners in WPF mit IronQR sind der OpenFileDialog zur Bildauswahl und die QrReader.Read-Methode für die QR-Code-Dekodierung.

Kann IronQR QR-Codes aus verschiedenen Bildformaten dekodieren?

Ja, IronQR kann QR-Codes aus verschiedenen Bildformaten dekodieren, was es vielseitig für den Einsatz in WPF-Anwendungen macht, bei denen Bilder in unterschiedlichen Dateitypen vorliegen können.

Ist es möglich, IronQR in bestehende WPF-Anwendungen zu integrieren?

Absolut, IronQR kann in bestehende WPF-Anwendungen integriert werden, sodass Entwickler QR-Code-Scanning-Funktionalitäten hinzufügen können, ohne ihr derzeitiges System komplett zu überarbeiten.

Was macht IronQR für die WPF-Entwicklung geeignet?

IronQR ist für die WPF-Entwicklung geeignet aufgrund seiner Benutzerfreundlichkeit, robusten QR-Code-Dekodierungsfähigkeiten und der nahtlosen Integration in Windows-Desktop-Anwendungen.

Wie verbessert der OpenFileDialog die Benutzererfahrung in einem WPF QR-Code-Scanner?

Der OpenFileDialog verbessert die Benutzererfahrung durch eine einfache Benutzeroberfläche zur Auswahl von Bilddateien, die anschließend von IronQR verarbeitet werden können, um QR-Codes zu dekodieren.

Welche Rolle spielt QrReader.Read im QR-Code-Scanning-Prozess?

QrReader.Read ist entscheidend im QR-Code-Scanning-Prozess, da es den QR-Code aus dem ausgewählten Bild dekodiert und dabei die fortschrittlichen Dekodieralgorithmen von IronQR nutzt.

Gibt es Voraussetzungen für die Verwendung von IronQR in einer WPF-Anwendung?

Um IronQR in einer WPF-Anwendung zu verwenden, sollten Entwickler eine grundlegende Kenntnis der WPF-Entwicklung und Vertrautheit mit C# haben. Die übersichtliche API von IronQR macht es Entwicklern aller Erfahrungsstufen zugänglich.

Wie stellt IronQR die Genauigkeit bei der QR-Code-Dekodierung sicher?

IronQR stellt die Genauigkeit bei der QR-Code-Dekodierung durch seine fortschrittlichen Algorithmen sicher, die darauf ausgelegt sind, verschiedenste QR-Code-Komplexitäten und Bildqualitäten effizient zu bewältigen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 67,270 | Version: 2026.5 just released
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronQR
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihre URL zu einem QR-Code wird.