Выгрузка настроенной диаграммы LINQPad в линию - PullRequest
0 голосов
/ 25 апреля 2019

Если я не настраиваю диаграмму в LINQPad, существует метод для выгрузки встроенного файла с использованием linqpadChart.DumpInline().

Существует ли аналогичный метод для выгрузки встроенного настраиваемого графика или создания и выгрузки Bitmap как я сделал в этом примере единственным способом?

string[] xSeries = { "John", "Mary", "Sue" };
int[] ySeries = { 100, 120, 140 };

var winChart = xSeries.Chart().AddYSeries (ySeries, Util.SeriesType.Pie).ToWindowsChart();

// Make tweaks/customizations:
var area = winChart.ChartAreas.First();
area.Area3DStyle.Enable3D = true;
area.Area3DStyle.Inclination = 50;
winChart.Series.First().Points[2].SetCustomProperty ("Exploded", "true");

// Draw it to a bitmap and then dump it:
using (var bitmap = new Bitmap(500, 500))
{
    winChart.DrawToBitmap(bitmap, new Rectangle(Point.Empty, bitmap.Size));
    bitmap.Dump();
}

1 Ответ

1 голос
/ 26 апреля 2019

Да, это похоже на то, что DumpInline делает за кадром, хотя и с веб-диаграммой.

Вот код из LINQPadChart, если вы хотите скопировать его в MyРасширения

public static class MyExtensions
{
    public static Bitmap ToBitmap (this Chart webChart) => ToBitmap (webChart, 0, 0);

    public static Bitmap ToBitmap (this Chart webChart, int width, int height)
    {
        if (width <= 0) width = Screen.PrimaryScreen.WorkingArea.Width / 2;
        if (height <= 0) height = width / 2;

        var img = new Bitmap (width, height);
        using (var g = Graphics.FromImage (img)) webChart.Paint (g, new Rectangle (0, 0, width, height));
        return img;
    }
}
...