Netty’s Notebook

ねってぃーの備忘録

【WPF】QRコードを表示してみた

WPFQRコードが作成できたら…と思っていろいろ調べてみました。

目標

準備

標準のライブラリでQRコードを作成することはできないけれど、 オープンソースのライブラリを使用して作成することができるみたい。

英数字のみ対応のライブラリが多い中、ひらがなや漢字まで対応している『DotNetBarcodeV2.4.0』を使わせていただきました。

「プロジェクト」→「プロジェクト参照の追加」からダウンロードした「DotNetBarcode.dll」を追加。

コード作成

<Window x:Class="QRcode.MainWindow"
    <Grid>
        <Button Margin="465,0,287,0" Click="Button_Click" Height="20" VerticalAlignment="Top" >生成</Button>
        <TextBox x:Name="Textbox1" HorizontalAlignment="Left" Height="20" Text="あいうえお" TextWrapping="Wrap" AcceptsReturn="True" VerticalAlignment="Top" Width="465"/>
        <Image x:Name="QRImage" Margin="12,50,642,236"/>
    </Grid>
</Window>

using Sysmte;
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
     private void Button_Click(object sender, RoutedEventArgs e)
    {
        qr();
    }
     private void qr()
    {
        //DotNetBarcodeオブジェクトを作成(引数はなくてもいいみたい)
        DotNetBarcode bc1 = new DotNetBarcode(DotNetBarcode.Types.QRCode);
//QRコードの文字 String QRcodeStrings;
//PixcelSize:1モジュール(1つの点の大きさ:ピクセル)の大きさを5pxに。 //値が小さすぎるとぼやけるっぽい? int PixcelSize = 5;
//テキストボックスの文字列をBarcodeStringsに格納 QRcodeStrings = Textbox1.Text;
//QRコードをクリップボードへコピー→表示 bc1.QRCopyToClipboard(QRcodeStrings, PixcelSize); QRImage.Source = Clipboard.GetImage(); } }

QRWriteBar()メソッドの使い方がよくわからなかったので QRCopyToClipboard()メソッドを使ってクリップボード経由でImageを更新します。

テキストボックスのAcceptsReturnをTrueにすることで 改行も反映されるようになりました。

直接QRcodeStringsを指定するときは、改行コード「\r\n」を使うことで改行できました。