public DrawVisual(Painter <AvaloniaCanvas, TContent, AvaloniaColor> painter, System.Drawing.RectangleF measure, CSharpMathTextAlignment alignment) { this.painter = painter; this.measure = measure; this.alignment = alignment; }
public static void DrawAsPng <TContent> (this Painter <AvaloniaCanvas, TContent, AvaloniaColor> painter, System.IO.Stream target, float textPainterCanvasWidth = TextPainter.DefaultCanvasWidth, CSharpMathTextAlignment alignment = CSharpMathTextAlignment.TopLeft) where TContent : class { if (!(painter.Measure(textPainterCanvasWidth) is { } size)) { return; } using var bitmap = new RenderTargetBitmap(new PixelSize((int)size.Width, (int)size.Height)); bitmap.Render(new DrawVisual <TContent>(painter, size, alignment)); bitmap.Save(target); }