以下のように、このビットマップを a の背景として設定するビューをDrawingVisual使用して、a (例ではビジュアル) をビットマップにレンダリングしようとしています。RenderTargetBitmapCanvas
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 ではなくパレットを使用する方法が適しているように思われました。