4 Stimmen

Welches Steuerelement zur Datenvisualisierung wird zur Darstellung der Ergebnisse in LINQPad verwendet?

Welche Datenvisualisierungssteuerung wird verwendet, um die Ergebnisse in LINQPad ? Oder gibt es eine Alternative für die Anzeige hierarchischer Daten in .NET?

4voto

Darin Dimitrov Punkte 990883

LINQPad verwendet eine WebBrowser Steuerelement, um eine dynamisch generierte HTML-Seite anzuzeigen. Sie können sogar den Quellcode anzeigen, indem Sie mit der rechten Maustaste auf das Ergebnisfenster klicken. Es ist also im Grunde ein Wrapper für den Internet Explorer. Was die Generierung des HTML betrifft, so verwendet es einen speziell entwickelten XhtmlFormatter, um den Objektgraphen zu besuchen und XHTML auf der Grundlage von XDocument zu emittieren.

3voto

Reb.Cabin Punkte 5267

LINQPad kann auch alle alten Dundas Charting-Steuerungen die mit Windows Forms geliefert werden. Geben Sie einfach ein beliebiges Bitmap-Objekt ein und LINQPad zeigt es pflichtbewusst im HTML an. Probieren Sie das Folgende aus und stellen Sie sicher, dass Sie System.Drawing , System.Windows.Forms y System.Windows.Forms.DataVisualization , in Ihrem F4 Referenzen, einfügen und drücken F5 . Es funktioniert auch mit den übergeordneten SHO-Tabellen, die für folgende Zwecke entwickelt wurden IronPython , funktionieren aber hervorragend mit C#.

// Almost the smallest meaningful example of Charting
void Main()
{
    // Chart must have a chart area, but it's not externally referenced later
    var chartArea1 = new ChartArea();
    var chart1 = new Chart();
    chart1.ChartAreas.Add(chartArea1);

    var series1 = new Series();

    // The following goes beyond the minimal, but just a little. You can delete these two lines.
    // Fun to set the series ChartType; default is column chart
    series1.ChartType = SeriesChartType.Pie;
    series1.CustomProperties = "LabelsRadialLineSize=1, PieDrawingStyle=Concave, LabelStyle=outside";

    var r = new Random(Guid.NewGuid().GetHashCode());
    var ys = Enumerable.Range(0, 5).Select (e => r.NextDouble()).Dump("Doubles");
    var xs = Enumerable.Range(0, 5).Select (e => GetRandomString(3).ToUpper()).Dump("Strings");
    series1.Points.DataBindXY(xs.ToArray(), ys.ToArray());
    chart1.Series.Add(series1);

    var b = new Bitmap(width: chart1.Width, height: chart1.Height);
    chart1.DrawToBitmap(b, chart1.Bounds);
    b.Dump();

    var frm = new Form();
    // Seems 300 x 300 is the default chart-area size and chart size, so set the form to hold it
    frm.ClientSize = new Size(width: 300, height: 300);
    frm.Controls.Add(chart1);

    Application.Run(frm);
}

static IEnumerable<string> CharRange(Char c, int length)
{
    return (from e in Enumerable.Range(Convert.ToInt32(c), length)
            select Char.ConvertFromUtf32(e));
}

static string GetRandomString(int length)
{
    var sb = new StringBuilder();
    do
        sb.Append(Path.GetRandomFileName().Replace(".", "").Substring(0, length < 11 ? length : 11));
    while ((length -= 11) > 0);
    return sb.ToString();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X