将 Canvas 与许多子路径一起使用的最佳方式

Best way to use Canvas with many paths as children

我们目前正在使用 Canvas 在 UI 中为 WinRT、UWP 呈现条形码。我们通过添加每个点(QR 条形码中的黑点)作为 canvas 中的路径来实现这一点,这在渲染时使用更多时间来显示条形码。以高性能实现这一目标的有效方法是什么。

二维码图片:

我找到了一个解决方案,将条形码绘制为图像而不是 canvas。

    public WriteableBitmap Render()
    {

        byte[] foreground = new byte[] { 0, 0, 0, 255 };
        byte[] background = new byte[] { 0, 100, 0, 255 };
        WriteableBitmap bmp = new WriteableBitmap(2, 2);

        bmp.PixelBuffer.AsStream().Write(foreground, 0, 4);
        bmp.PixelBuffer.AsStream().Write(background, 0, 4);
        bmp.PixelBuffer.AsStream().Write(foreground, 0, 4);
        bmp.PixelBuffer.AsStream().Write(background, 0, 4);


        bmp.Invalidate();
        return bmp;
    }