private void PieChartbtn_Click(object sender, EventArgs e)
        {
            GdiPlusPainter painter = new GdiPlusPainter(600, 400);
            Chart          chart   = new NormalPieChart();

            chart.Style.Type = StyleType.Light;
            chart.Draw(painter, data);
            pictureBox1.Image = painter.Bitmap;
        }
        private void ColumnChartBtn_Click(object sender, EventArgs e)
        {
            GdiPlusPainter painter = new GdiPlusPainter(600, 400);
            Chart          chart   = new VerticalColumnChart();

            chart.Style.Type = StyleType.Normal;
            chart.Draw(painter, data);
            pictureBox1.Image = painter.Bitmap;
        }
        private void TransposeMatrixBtn_Click(object sender, EventArgs e)
        {
            data.Series = data.TransposeMatrix(data.Series);
            GdiPlusPainter painter = new GdiPlusPainter(600, 400);
            Chart          column  = new VerticalColumnChart();

            column.Draw(painter, data);
            pictureBox1.Image = painter.Bitmap;
        }
        void DrawWithWinGdi(GdiPlusPainter p)
        {
            int w = 800, h = 600;

            p.Clear(Drawing.Color.White);
            p.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
            if (isMaskSliderValueChanged)
            {
                GenerateMaskWithWinGdiPlus(w, h);
            }

            using (System.Drawing.Bitmap background = CreateBackgroundBmp(w, h))
            {
                p.DrawImage(background, 0, 0);
            }

            //draw lion on background
            Affine transform = Affine.NewMatix(
                AffinePlan.Translate(-lionShape.Center.x, -lionShape.Center.y),
                AffinePlan.Scale(lionScale, lionScale),
                AffinePlan.Rotate(angle + Math.PI),
                AffinePlan.Skew(skewX / 1000.0, skewY / 1000.0),
                AffinePlan.Translate(w / 2, h / 2));

            using (System.Drawing.Bitmap lionBmp = new System.Drawing.Bitmap(w, h))
                using (System.Drawing.Graphics lionGfx = System.Drawing.Graphics.FromImage(lionBmp))
                {
                    //lionGfx.Clear(System.Drawing.Color.White);
                    //int n = lionShape.NumPaths;
                    //int[] indexList = lionShape.PathIndexList;


                    //TODO: review here again
                    throw new NotSupportedException();

                    //Color[] colors = lionShape.Colors;
                    ////var lionVxs = lionShape.Path.Vxs;// transform.TransformToVxs(lionShape.Path.Vxs);

                    //var lionVxs = new VertexStore();
                    //transform.TransformToVxs(lionShape.Vxs, lionVxs);
                    //for (int i = 0; i < n; ++i)
                    //{
                    //    VxsHelper.FillVxsSnap(lionGfx,
                    //        new VertexStoreSnap(lionVxs, indexList[i]),
                    //        colors[i]);
                    //}
                    //using (var mergeBmp = MergeAlphaChannel(lionBmp, a_alphaBmp))
                    //{
                    //    //gx.InternalGraphics.DrawImage(this.a_alphaBmp, new System.Drawing.PointF(0, 0));
                    //    //gx.InternalGraphics.DrawImage(bmp, new System.Drawing.PointF(0, 0));
                    //    p.DrawImage(mergeBmp, 0, 0);
                    //}
                }
        }
        private void AddColumnDataBtn_Click(object sender, EventArgs e)
        {
            foreach (DataSeries s in data.Series)
            {
                DataPoint point = new DataPoint();
                point.Value      = data.Series.IndexOf(s) * 30 + 30;
                point.ColumnName = "testaddCol";
                s.Point.Add(point);
            }
            GdiPlusPainter painter = new GdiPlusPainter(600, 400);
            Chart          line    = new BrokenLineChart();

            line.Draw(painter, data);
            pictureBox1.Image = painter.Bitmap;
        }
        private void ChangeStyleBtn_Click(object sender, EventArgs e)
        {
            ChartList list   = new ChartList();
            Chart     chart1 = new BrokenLineChart();

            chart1.Style.Type = StyleType.Light;
            list.ItemList.Add(chart1);

            Chart chart2 = new BrokenLineChart();

            chart2.Style.Type = StyleType.Normal;
            list.ItemList.Add(chart2);

            GdiPlusPainter painter = new GdiPlusPainter(800, list.ItemList.Count * 400);

            list.Draw(painter, data, list.ItemList);

            pictureBox1.Image = painter.Bitmap;
        }
        private void AddDataBtn_Click(object sender, EventArgs e)
        {
            DataSeries series = new DataSeries();

            foreach (DataPoint dataPoint in data.Series[0].Point)
            {
                DataPoint point = new DataPoint();
                point.Value      = 100;
                point.ColumnName = "testaddrow";
                series.Point.Add(point);
            }
            series.Name = "addrow";
            data.Series.Add(series);

            GdiPlusPainter painter = new GdiPlusPainter(600, 400);
            Chart          chart   = new VerticalColumnChart();

            chart.Style.Type = StyleType.Normal;
            chart.Draw(painter, data);
            pictureBox1.Image = painter.Bitmap;
        }
        private void AddChartBtn_Click(object sender, EventArgs e)
        {
            ChartList chartItem = new ChartList();

            Chart column = new VerticalColumnChart();

            column.Style.Type = StyleType.Light;
            chartItem.ItemList.Add(column);

            Chart curve = new BrokenLineChart();

            chartItem.ItemList.Add(curve);

            Chart pie = new NormalPieChart();

            chartItem.ItemList.Add(pie);

            GdiPlusPainter painter = new GdiPlusPainter(600, chartItem.ItemList.Count * (400 + 30));

            chartItem.Draw(painter, data, chartItem.ItemList);
            pictureBox1.Image = painter.Bitmap;
        }