跳至主要內容

Visual Studio 2022 產生 QR Code

Last Updated on 2025-09-05 by william

Visual Studio 2022 開發 UWP 程式,要產生 QR Code,我測試過兩種元件,效果都很不錯。

第一種是 「Net.Codecrete.QrCodeGenerator
第二種是「QRCoder

通常我都是找最近更新的,或是更新較勤勞的元件,這樣跟 vs 版本會比較相容 🙂

因為 uwp 使用 .net core ,有些系統元件不能用,所以剛剛提到的兩個元件,其範例不太能用,若想要把產生好的 QR Code 對應到 UI 元件 Image 上,就需要迂迴一下。

兩個元件都是先產生 bitmap 的 byte array,再轉換到 UWP 的 Image 上呈現。

C# 程式寫法

  // 元件「Net.Codecrete.QrCodeGenerator」 寫法
  var qr = QrCode.EncodeText("hello world" , QrCode.Ecc.Medium);
  byte[] qrCodeAsPngByteArr = qr.ToBmpBitmap(2, 6);

  using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
  {
    using (DataWriter writer = new DataWriter(stream.GetOutputStreamAt(0)))
    {
      writer.WriteBytes(qrCodeAsPngByteArr);
      await writer.StoreAsync();
    }
    var image = new BitmapImage();
    await image.SetSourceAsync(stream);
	
	// qrcodeImg  UI Image 元件 
    qrcodeImg.Source = image;
  }
  // 元件「QRCoder」 寫法
  QRCodeGenerator qrGenerator = new QRCodeGenerator();
  QRCodeData qrCodeData = qrGenerator.CreateQrCode("hello world", QRCodeGenerator.ECCLevel.Q);
  PngByteQRCode qrCode = new PngByteQRCode(qrCodeData);
  byte[] qrCodeAsPngByteArr = qrCode.GetGraphic(6);

  using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
  {
    using (DataWriter writer = new DataWriter(stream.GetOutputStreamAt(0)))
    {
      writer.WriteBytes(qrCodeAsPngByteArr);
      await writer.StoreAsync();
    }
    var image = new BitmapImage();
    await image.SetSourceAsync(stream);
	
	// qrcodeImg  UI Image 元件 
    qrcodeImg.Source = image;
  }

分類:技術

搶先發佈留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

由 Compete Themes 設計的 Author 佈景主題