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;
}
搶先發佈留言