以下のように、このビットマップを a の背景として設定するビューをDrawingVisual
使用して、a (例ではビジュアル) をビットマップにレンダリングしようとしています。RenderTargetBitmap
Canvas
var bmp = new RenderTargetBitmap(2000, 50, 120, 96, PixelFormats.Indexed2);
bmp.Render(visual);
var brush = new ImageBrush(bmp) { Stretch = Stretch.Fill };
Canvas.Background = brush;
PixelFormats.Default
の最後の引数としてを使用するRenderTargetBitmap
と、イメージは期待どおりにレンダリングされます。ただし、PixelFormats.Indexed2
(またはのいずれかPixelFormats.IndexedX
) を選択すると、コードは例外なくメソッドを終了するように見えます。このbmp.Render
行は呼び出されないため、画像は に表示されませんCanvas
。
IndexedX
でピクセル形式を使用するにはRenderTargetBitmap
? または、イメージのメモリ フットプリントを削減する他の方法はありますか? 3 色しか使用しないため、32 ビット RGB ではなくパレットを使用する方法が適しているように思われました。