WPF'de Bir QR Kod Tarayıcı Nasıl Yapılır
Windows Presentation Foundation (WPF), XAML tanımlı UI'lerle Windows masaüstü uygulamaları oluşturmak için .NET çerçevesidir. IronQR, sadece birkaç C# satırı ile kullanıcı tarafından seçilen görüntü dosyalarından QR kodu taramayı mümkün kılarak doğrudan WPF'ye entegre olur.
Bu kılavuzda, bir dosya diyaloğu açan, seçilen bir resmi yükleyen ve IronQR kullanarak gömülü herhangi bir QR kodunu çözen bir WPF uygulaması oluşturacağız. Yöntem, PNG, JPEG, BMP, GIF, TIFF ve diğer yaygın görüntü formatlarını destekler.
WPF'de Bir QR Kodu Nasıl Tararsınız
- IronQR C# kütüphanesini NuGet üzerinden yükleyin
- XAML'de WPF penceresine bir
ButtonveTextBlockekleyin - Diskten bir resim seçmek için
OpenFileDialogile bir dosya diyaloğu açın - Görüntüyü
AnyBitmap.FromFileile yükleyin ve birQrImageInputiçine sarın Readçağrısı yapın ve çözülen değeriTextBlockiçinde gösterin
Ön Koşullar
- .NET masaüstü geliştirme iş yükü yüklü Visual Studio 2022
- .NET 8 veya daha sonrasını hedefleyen bir WPF projesi
IronQR Yükleme
Visual Studio'daki NuGet Package Manager Console kullanarak IronQR kütüphanesini yükleyin. Tools > NuGet Package Manager > Package Manager Console yoluna gidin ve şunu çalıştırın:
Install-Package IronQR
Alternatif olarak, NuGet uzerinde IronQR arayarak en son versiyonu yukleyebilirsiniz.
WPF Pencere Düzeni
Tarayici UI, dosya diyalogunu tetiklemek icin bir Button kullanir ve dekode edilen sonucu göstermek icin bir TextBlock kullanir. Asagidaki markupu MainWindow.xaml ekleyin:
<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>
Örnek Girdi
Aşağıdaki QR kodunu test resmi olarak kullanın. Cihazınıza kaydedin, dosya diyalogu aracılığıyla seçin ve Resim Seç ve QR Kodu Tara butonuna tıklayın. Çözülen değer https://ironsoftware.com olarak görünmelidir.
Örnek QR kodu - https://ironsoftware.com kodluyor
IronQR ile QR Kod Tarama
Butona tiklandiginda, OnScanButtonClicked bir dosya diyalogu acar ve bir resim secmenizi saglar. Secilen dosya bir AnyBitmap icine yuklenir, QrReader.Read ile iletilir ve ilk dekode edilen değer ResultLabel icine yazilir.
Asagidaki OnScanButtonClicked metodunu MainWindow.xaml.cs ekleyin:
: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
OpenFileDialog, yaygin resim formatlarina filtrelenmis yerel Windows dosya secimini saglar. PNG, JPEG, BMP, GIF ve TIFF girislerinin format dekodunu AnyBitmap.FromFile yonetirken QrReader.Read, tespit edilen her bir QR kodu icin bir girdi iceren bir IEnumerable<QrResult> dondurur. FirstOrDefault, gecerli bir kod bulunmayan resimlerde istisnalardan kacinmak icin hicbir QR kodu bulunmadiginda null guvenli bir sekilde dondurur.
Çıktı
Bir QR kodu resmi secilip tarama butonuna tiklandiktan sonra, dekode edilen değer butonun altindaki TextBlock icinde belirir.
Çözülen QR kodu değeri WPF penceresinde gösterilir
Projeyi İndir
Sonuç
IronQR, en az kurulum ile bir WPF uygulamasina entegre edilir — tek bir QrReader.Read cagrisi masaustunde tüm dekoding is akisini halleder. Tek bir resimden birden fazla QR kodu taramak icin, FirstOrDefault cagirmak yerine tüm sonuc koleksiyonu uzerinde yineleyin.
Bu aynı desen, bir görüntü dosyaları dizinini dolaşarak toplu işlemeye veya bir WPF medya öğesiyle bir web kamerası beslemesinden kareler yakalayarak gerçek zamanlı taramaya kadar uzanır.
QR kodlarını okuma ve kullanılabilir tarama modları hakkında daha fazla bilgi için, Görselden QR Kodları Oku ve Tarama Modları ile QR Kodları Oku kılavuzlarına bakın.

