【WPF】QRコードを表示してみた
WPFでQRコードが作成できたら…と思っていろいろ調べてみました。
目標
準備
標準のライブラリで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」を使うことで改行できました。