IRONSOFTWAREHOME

.NET MAUI ile Masaüstü Barkod Uygulaması (Tarayıcı/Üreteç) Nasıl Oluşturulur

Curtis Chau
Curtis Chau
Updated: 29 Haziran 2026

Kapsamlı bir yazılım çözümü için, sadece mobil erişilebilirlik yeterli değildir. Windows ve macOS gibi masaüstü işletim sistemlerinde yerel olarak dağıtma yeteneği de kritik önemdedir. Bu çapraz platform yaklaşımı, işletmelerin varlık takibi ve yönetimi gibi yüksek hacimli görevler için iş istasyonlarının tam gücünü kullanmalarını sağlar.

Doğru masaüstü desteği olmadan, iş akışları kesintiye uğrar veya daha kötü cihazlara zorlanır. Bunun özellikle, ofis personelinin kod grupları oluşturma veya taramaları hızlı bir şekilde doğrulama gereksinimi duyduğu envanter yönetiminde önemi büyüktür.

IronBarcode, bu özellikleri uygulamak için gerekli araçları sunar ve .NET MAUI uygulamanızın herhangi bir bilgisayarda güvenilir bir şekilde çalışmasını sağlar.

Bu makalede, hem bir Masaüstü Barkod Tarayıcı hem de bir Masaüstü Barkod Üreteci oluşturmak için IronBarcode'u nasıl entegre edeceğimizi açıklayacağız.



.NET MAUI Masaüstü Uygulaması

IronBarcode'u .NET MAUI uygulamasına entegre etmek kolaydır, çünkü kütüphane kutudan çıktığı gibi masaüstü platformuyla doğrudan çalışmaktadır. Bu örnekte, IronBarcode'u ayrı ayrı kullanarak hem bir barkod tarayıcı hem de bir barkod üreteci oluşturacağız.

İlk olarak barkod tarayıcıya başlayalım.

Barkod Tarayıcı Arayüzü XAML

.NET MAUI arayüzü için, kullanıcıların bir gönderme düğmesi aracılığıyla barkod görüntüleri yüklemesine izin vermek amacıyla basit bir arayüz uygulanmıştır. Projede bulunan MainPage.xaml dosyası, aşağıda gösterilen içerikle değiştirilmelidir.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiApp1.MainPage"
             BackgroundColor="{DynamicResource PageBackgroundColor}">

    <ScrollView>
        <VerticalStackLayout Spacing="25" Padding="30" VerticalOptions="Center">

            <Label Text="Desktop Barcode Scanner"
                   FontSize="32"
                   HorizontalOptions="Center" />

            <Image x:Name="ScannerImage"
                   HeightRequest="300"
                   WidthRequest="400"
                   BackgroundColor="#F0F0F0"
                   Aspect="AspectFit"
                   HorizontalOptions="Center" />

            <Button Text="Select Image to Scan"
                    Clicked="OnScanButtonClicked"
                    HorizontalOptions="Center" 
                    WidthRequest="200"/>

            <Label x:Name="ResultLabel"
                   Text="Result will appear here..."
                   FontSize="20"
                   HorizontalOptions="Center"
                   HorizontalTextAlignment="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Masaüstü Barkod Tarayıcı Mantığı CS

Sonra, kullanıcının düğmeye tıkladığında gerçekleşecek olan mantık uygulanır. UI'daki tarama düğmesine bir OnScanButtonClicked olay işleyicisi eklendi.

Kullanıcıların yüklemek için barkod seçmesine izin vermek amacıyla önce PickPhotoAsync, ardından dosya akışına erişmek için OpenReadAsync kullanılır. Görüntü verileri, CopyToAsync kullanarak hemen bir MemoryStream içine kopyalanır. Bu, verilerin aynı anda ekranda görüntüyü göstermek ve bir barkodu taramak için Read yöntemiyle kullanılmasına olanak tanır.

Son olarak, geçerli bir barkod tespit edildiğinde barkod değeri UI'de gösterilir, aksi halde görüntüde barkod bulunmadığını belirten kırmızı bir mesaj görüntülenir.

Lütfen dikkate alın: Uygulamayı test etmeden önce lisans anahtarını kendi anahtarınızla değiştirin.
using IronBarCode;

namespace MauiApp1
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            // Your license key is set here
            IronBarCode.License.LicenseKey = "YOUR_KEY"
        }

        private async void OnScanButtonClicked(object sender, EventArgs e)
        {
            try
            {
                var fileResult = await MediaPicker.Default.PickPhotoAsync();

                if (fileResult != null)
                {
                    // 1. Copy the file content into a byte array or MemoryStream immediately
                    // This ensures we have the data in memory before the file closes
                    byte[] imageBytes;
                    using (var stream = await fileResult.OpenReadAsync())
                    using (var memoryStream = new MemoryStream())
                    {
                        await stream.CopyToAsync(memoryStream);
                        imageBytes = memoryStream.ToArray();
                    }

                    // 2. Set the Image Source for the UI
                    // We give the UI a FRESH stream from the bytes we just saved
                    ScannerImage.Source = ImageSource.FromStream(() => new MemoryStream(imageBytes));

                    // 3. Process the Barcode
                    // We give IronBarcode its OWN fresh stream from the same bytes
                    using (var processingStream = new MemoryStream(imageBytes))
                    {
                        // 4. Read the barcode with Read
                        var results = BarcodeReader.Read(processingStream);

                        // 5. Display barcode results
                        if (results != null && results.Count > 0)
                        {

                            // Successfully found barcode value
                            ResultLabel.Text = $"Success: {results[0].Value}";
                            ResultLabel.TextColor = Colors.Green;
                        }
                        else
                        {
                            // Image uploaded has no barcode or barcode value is not found
                            ResultLabel.Text = "No barcode detected.";
                            ResultLabel.TextColor = Colors.Red;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                // Display any exception thrown in runtime
                ResultLabel.Text = $"Error: {ex.Message}";
                ResultLabel.TextColor = Colors.Red;
            }
        }
    }
}

Barkod Değeri Bulunan Çıktı

Bulunan barkodlar çıkışı

Gördüğünüz gibi, uygulama barkod sonucunu ve yüklenmiş barkod görüntüsünü gösterir.

Barkod Değeri Bulunamayan Çıktı

Bulunamayan barkodlar çıkışı

Gördüğünüz gibi, kullanıcı barkod içermeyen bir görüntü yüklediğinde, "Barkod bulunamadı" ifadesiyle kırmızı bir mesaj görüntüler.

Masaüstü Barkod Üreteci

Bir sonraki bölüm, IronBarcode'u MAUI'ye entegre ederek barkod üreteci oluşturma mantığının üzerine inşa edilmiş.

Barkod Üreteci Arayüzü XAML

Üreteci arayüzü için, metin girişi ve bir açılır menü aracılığıyla barkod türü seçimi yapılabilen basit bir form uygulanmıştır. Oluşturma ve kaydetme sürecini başlatmak için bir düğme ve sonucu göstermek için bir görüntü görünümü dahil edilmiştir. MainPage.xaml dosyası, aşağıda gösterilen içerikle değiştirilmelidir.

buradan 1D barkodların ve buradan 2D barkodların tam listesine bakın.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiApp1.MainPage"
             BackgroundColor="{DynamicResource PageBackgroundColor}">

    <ScrollView>
        <VerticalStackLayout Spacing="20" Padding="30" VerticalOptions="Center">

            <Label Text="Barcode Generator"
                   FontSize="32"
                   HorizontalOptions="Center" />

            <Entry x:Name="BarcodeEntry"
                   Placeholder="Enter value (e.g. 12345 or https://ironsoftware.com)"
                   WidthRequest="300" />

            <Picker x:Name="BarcodeTypePicker"
                    Title="Select Barcode Type"
                    WidthRequest="300">
                <Picker.ItemsSource>
                    <x:Array Type="{x:Type x:String}">
                        <x:String>QRCode</x:String>
                        <x:String>Code128</x:String>
                        <x:String>EAN13</x:String>
                        <x:String>Code39</x:String>
                        <x:String>PDF417</x:String>
                    </x:Array>
                </Picker.ItemsSource>
            </Picker>

            <Button Text="Generate &amp; Save"
                    Clicked="OnGenerateButtonClicked"
                    HorizontalOptions="Center"
                    WidthRequest="200" />

            <Image x:Name="GeneratedImage"
                   HeightRequest="200"
                   WidthRequest="300"
                   BackgroundColor="#F0F0F0"
                   Aspect="AspectFit" />

            <Label x:Name="StatusLabel"
                   FontSize="16"
                   HorizontalOptions="Center"
                   HorizontalTextAlignment="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Masaüstü Barkod Üreteci Mantığı CS

Ardından, düğme tıklama olayının mantığı uygulanır. UI'daki üret düğmesine bir OnGenerateButtonClicked olay işleyicisi eklendi.

Metnin mevcut olduğundan ve bir türün seçildiğinden emin olmak için kullanıcı girdisi doğrulanır, bundan sonra seçim doğru BarcodeEncoding ile eşleştirilir. Görüntüyü oluşturmak, boyutlandırmak ve JPEG ikili verisine dönüştürmek için BarcodeWriter.CreateBarcode kullanılır. Görüntü daha sonra bir MemoryStream kullanılarak ekranda gösterilir.

Son olarak, oluşturulan barkod dosyası doğrudan kullanıcının masaüstüne File.WriteAllBytes kullanılarak kaydedilir ve durumu etiketi kaydetme konumunu onaylamak için güncellenir.

Lütfen dikkate alın: Uygulamayı test etmeden önce lisans anahtarını kendi anahtarınızla değiştirin.
using IronBarCode;
using System.IO; // Required for saving files

namespace MauiApp1
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            IronBarCode.License.LicenseKey = "YOUR-KEY";

            // Set default selection
            BarcodeTypePicker.SelectedIndex = 0;
        }

        private void OnGenerateButtonClicked(object sender, EventArgs e)
        {
            try
            {
                // 1. Get and Validate Input
                string text = BarcodeEntry.Text;

                if (string.IsNullOrWhiteSpace(text))
                {
                    StatusLabel.Text = "Error: Please enter text.";
                    StatusLabel.TextColor = Colors.Red;
                    return;
                }

                if (BarcodeTypePicker.SelectedIndex == -1)
                {
                    StatusLabel.Text = "Error: Please select a type.";
                    StatusLabel.TextColor = Colors.Red;
                    return;
                }

                // 2. Determine Encoding Type
                string selectedType = BarcodeTypePicker.SelectedItem.ToString();
                BarcodeEncoding encoding = BarcodeEncoding.QRCode;

                switch (selectedType)
                {
                    case "QRCode": encoding = BarcodeEncoding.QRCode; break;
                    case "Code128": encoding = BarcodeEncoding.Code128; break;
                    case "EAN13": encoding = BarcodeEncoding.EAN13; break;
                    case "Code39": encoding = BarcodeEncoding.Code39; break;
                    case "PDF417": encoding = BarcodeEncoding.PDF417; break;
                }

                // 3. Generate Barcode
                var barcode = BarcodeWriter.CreateBarcode(text, encoding);
                barcode.ResizeTo(400, 200); // Optional resizing

                // 4. Convert to Bytes (JPEG)
                var bytes = barcode.ToJpegBinaryData();

                // 5. Update UI
                GeneratedImage.Source = ImageSource.FromStream(() => new MemoryStream(bytes));

                // 6. Save to Desktop automatically
                string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
                string fileName = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.jpg";
                string fullPath = Path.Combine(desktopPath, fileName);

                File.WriteAllBytes(fullPath, bytes);

                // 7. Show Success Message
                StatusLabel.Text = $"Saved to Desktop:\n{fileName}";
                StatusLabel.TextColor = Colors.Green;
            }
            catch (Exception ex)
            {
                StatusLabel.Text = $"Error: {ex.Message}";
                StatusLabel.TextColor = Colors.Red;
            }
        }
    }
}

Oluşturulan Barkod ile Çıktı

Barkod Oluşturma Başarısı

Gördüğünüz gibi, uygulama oluşturulan barkodu gösterir ve kullanıcının masaüstüne kaydeder.

Çıktı Başarısızlığı

Barkod Oluşturma Başarısızlığı

Belirli barkod türlerinin giriş değeri için kısıtlamalar ve format gereksinimleri vardır. Barkod oluşturulamadığında, uygulama yukarıda gösterilen IronBarcode istisnasını gösterir. Her barkod türü için biçimlendirme konularında ilgili 1D ve 2D kılavuzlarına bakınız.

Yukarıdaki örnekleri (Desktop Barcode Scanner ve Desktop Barcode Generator) test etmek için bu örnek projeyi indirin.

Sıkça Sorulan Sorular

.NET MAUI nedir?

.NET MAUI, C# ve XAML ile yerel mobil ve masaüstü uygulamalar oluşturmak için çapraz platform bir çerçevedir. Tek bir kod tabanı kullanarak Android, iOS, macOS ve Windows için uygulamalar oluşturmanıza olanak tanır.

IronBarcode bir .NET MAUI uygulamasında nasıl kullanılabilir?

IronBarcode, bir .NET MAUI uygulamasına entegre edilerek barkod oluşturma ve tarama yeteneklerini etkinleştirir. Çeşitli masaüstü platformlarında barkodları oluşturmak ve okumak için basit bir yol sunar.

IronBarcode hangi tür barkodlar üretebilir?

IronBarcode, QR kodları, Code 128, Code 39, UPC, EAN ve daha fazlası dâhil olmak üzere geniş bir yelpazede barkod formatının üretilmesini destekleyerek her türlü masaüstü uygulama ihtiyacı için esneklik sunar.

IronBarcode kullanılarak oluşturulan bir masaüstü uygulaması ile barkodları taramak mümkün mü?

Evet, IronBarcode masaüstü uygulamalarında barkodları taramak için kullanılabilir, bu da kullanıcıların barkod bilgilerini uygulama arayüzü üzerinden hızla ve verimli bir şekilde çözmelerini sağlar.

Barkod uygulamaları için IronBarcode kullanmanın avantajları nelerdir?

IronBarcode yüksek doğruluk, hız ve kullanım kolaylığı sunar. .NET MAUI ile sorunsuz bir şekilde bütünleşir ve masaüstü uygulamalarında barkod üretimi ve taraması için kapsamlı destek sağlar.

IronBarcode büyük hacimde barkod verilerini işleyecek kapasiteye sahip mi?

Evet, IronBarcode büyük hacimde barkod verilerini verimli bir şekilde işlemek üzere tasarlanmıştır ve geniş ölçekte barkod görevlerini ele almayı gerektiren uygulamalar için uygundur.

Barkod tarama ve üretimi için ayrı bir kütüphaneye ihtiyacım var mı?

Hayır, IronBarcode, masaüstü uygulamaları için geliştirme sürecini basitleştirerek tek bir kütüphane içinde hem barkod tarama hem de üretim işlevlerini sunar.

.NET MAUI ile IronBarcode kullanımı için sistem gereksinimleri nelerdir?

IronBarcode, .NET MAUI ile uyumlu bir .NET ortamı gerektirir. Windows, macOS ve .NET MAUI uygulamalarının çalışabileceği diğer platformları destekler.

IronBarcode barkod doğruluğunu nasıl sağlar?

IronBarcode, hem barkod üretiminde hem de taramada yüksek hassasiyet sağlamak amacıyla gelişmiş algoritmalar kullanır ve barkod veri kodlamasında veya çözümlemesinde hata olasılığını azaltır.

IronBarcode, ticari ve kişisel projeler için kullanılabilir mi?

Evet, IronBarcode, farklı proje gereksinimlerine uygun esnek lisans seçenekleri sunarak hem ticari hem de kişisel projeler için kullanılabilir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 2,422,100Sürüm:2026.9yeni yayınlandı

Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. Gözat'ı seçin ve "IronBarCode" arayın
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

  1. ~/Libs gibi bir yere, Çözüm dizininizde IronBarCode'u indirip çıkarın
  2. Visual Studio Çözüm Gezgini'nde, Başvurulara sağ tıklayın. Gözat'ı seçin, "IronBarCode.dll"

$999 adresinden lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez