Я могу отрендерить Visual
в точечный рисунок с этим кодом:
Rect bounds = VisualTreeHelper.GetDescendantBounds(target);
RenderTargetBitmap renderBitmap = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32);
DrawingVisual visual = new DrawingVisual();
using (DrawingContext context = visual.RenderOpen())
{
VisualBrush brush = new VisualBrush(target);bounds.Value.Size));
context.DrawRectangle(brush, null, new Rect(new Point(), bounds.Value.Size));
}
renderBitmap.Render(visual);
return renderBitmap;
Проблема в том, что если у Visual есть эффект растрового изображения, например, тени, то полученное изображение будет сжатым. Кажется, что он пытается вписать визуал с тенью в изображение размером с визуал без тени.