VixenModules.App.Curves.Curve.GenerateCurveImage C# (CSharp) Method

GenerateCurveImage() public method

public GenerateCurveImage ( Size size ) : Bitmap
size System.Drawing.Size
return System.Drawing.Bitmap
        public Bitmap GenerateCurveImage(Size size)
        {
            GraphPane pane = new GraphPane(new RectangleF(0, 0, size.Width, size.Height), string.Empty, string.Empty, string.Empty);
            Bitmap result = new Bitmap(size.Width, size.Height);

            pane.AddCurve(string.Empty, Points, ActiveCurveGridColor);
            pane.XAxis.Scale.Min = 0;
            pane.XAxis.Scale.Max = 100;
            pane.YAxis.Scale.Min = 0;
            pane.YAxis.Scale.Max = 100;
            pane.XAxis.IsVisible = false;
            pane.YAxis.IsVisible = false;
            pane.Legend.IsVisible = false;
            pane.Title.IsVisible = false;

            pane.Chart.Fill = new Fill(SystemColors.Control);
            pane.Border = new Border(SystemColors.Control, 0);

            using (Graphics g = Graphics.FromImage(result)) {
                pane.AxisChange(g);
                result = pane.GetImage(true);
            }

            return result;
        }

Usage Example

        private void PopulateListWithCurves()
        {
            listViewCurves.BeginUpdate();
            listViewCurves.Items.Clear();

            listViewCurves.LargeImageList = new ImageList();

            foreach (KeyValuePair <string, Curve> kvp in Library)
            {
                Curve  c    = kvp.Value;
                string name = kvp.Key;

                listViewCurves.LargeImageList.ImageSize = new Size(64, 64);
                listViewCurves.LargeImageList.Images.Add(name, c.GenerateCurveImage(new Size(64, 64)));

                ListViewItem item = new ListViewItem();
                item.Text     = name;
                item.Name     = name;
                item.ImageKey = name;
                item.Tag      = c;

                listViewCurves.Items.Add(item);
            }

            listViewCurves.EndUpdate();

            buttonEditCurve.Enabled   = false;
            buttonDeleteCurve.Enabled = false;
        }