Exemple #1
0
        void DrawTrackBallToolTip(Graphics g, Syncfusion.Windows.Forms.Chart.ChartPoint pt)
        {
            Point location = Point.Empty;

            foreach (ChartSeries series in this.chartControl1.Series)
            {
                for (int i = 0; i < series.Points.Count; i++)
                {
                    if (pt.X == series.Points[i].X)
                    {
                        location = this.chartControl1.ChartArea.GetPointByValue(series.Points[i]);
                        TrackBallInfo.SymbolColor.Color = series.Style.Interior.BackColor;
                        TrackBallInfo.SymbolSize        = new System.Drawing.Size(10, 10);
                        string toolTipText = null;
                        if (series.Name.Equals("Temp"))
                        {
                            toolTipText = (series.Points[i].YValues[0] + 50) + "°" + " F" + "/" + (series.Points[i].YValues[0] + 75) + (Char)176;
                            DrawToolTip(g, location, toolTipText, TrackBallInfo.SymbolColor.Color);
                        }
                        else if (series.Name.Equals("RR"))
                        {
                            toolTipText = (series.Points[i].YValues[0] - 10).ToString();
                            DrawToolTip(g, location, toolTipText, TrackBallInfo.SymbolColor.Color);
                        }
                        else if (!(series.Name.Equals("HR")))
                        {
                            toolTipText = (series.Points[i].YValues[0] - 80).ToString();
                            DrawToolTip(g, location, toolTipText, TrackBallInfo.SymbolColor.Color);
                        }
                        DrawAxisLabelToolTip(g, location, series.Points[i].DateX.ToString("hh:mm:ss \n MM/dd"));
                        break;
                    }
                }
            }
        }
Exemple #2
0
        private void unwantedpanel_Paint(object sender, PaintEventArgs e)
        {
            var range  = this.chartControl1.PrimaryXAxis.Range;
            var yRange = this.chartControl1.PrimaryYAxis.Range;
            var area   = this.chartControl1.ChartArea;

            e.Graphics.Clear(Color.White);
            e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;

            var  text       = new string[] { "Sat", "RR", "HR", "TP" };
            int  radius     = (int)DpiAware.LogicalToDeviceUnits(32);
            var  circleSize = new Size(radius, radius);
            var  startPoint = new Syncfusion.Windows.Forms.Chart.ChartPoint(range.Min, yRange.Min);
            var  endPoint   = new Syncfusion.Windows.Forms.Chart.ChartPoint(range.Min, yRange.Min + yRange.Max);
            var  dHeight    = Math.Abs(area.GetPointByValue(startPoint).Y - area.GetPointByValue(new Syncfusion.Windows.Forms.Chart.ChartPoint(startPoint.X, startPoint.YValues[0] + yRange.Interval)).Y) / 2 + circleSize.Height / 2;
            Font textFont   = new System.Drawing.Font("Segoe UI", 5F);
            int  k          = 0;

            for (double i = startPoint.YValues[0]; i < endPoint.YValues[0]; i += yRange.Interval)
            {
                var point = area.GetPointByValue(new Syncfusion.Windows.Forms.Chart.ChartPoint(range.Min, i));
                var brush = new SolidBrush(this.chartControl1.Series[k].Style.Interior.BackColor);
                e.Graphics.FillEllipse(brush, e.ClipRectangle.X, point.Y - dHeight, circleSize.Width, circleSize.Width);
                var textSize = e.Graphics.MeasureString(text[k], Font, new PointF(e.ClipRectangle.X + circleSize.Width / 2, point.Y - dHeight), StringFormat.GenericDefault);
                e.Graphics.DrawString(text[k], Font, Brushes.White, new PointF(e.ClipRectangle.X + circleSize.Width / 2 - textSize.Width / 2, point.Y - dHeight + circleSize.Height / 2 - textSize.Height / 2), StringFormat.GenericDefault);
                brush.Dispose();
                k++;
            }
        }
Exemple #3
0
 void chartControl1_Paint(object sender, PaintEventArgs e)
 {
     using (Graphics gr = this.panel3.CreateGraphics())
     {
         gr.SmoothingMode = SmoothingMode.HighQuality;
         var  text         = new string[] { "Temp", "Feels like", "Humidity", "Wind" };
         var  axisText     = new string[] { "36", "106", "100", "200", "40", "100", "10", "40" };
         var  labelSpacing = 10;
         var  location     = this.chartControl1.Location;
         var  circleSize   = new Size(60, 60);
         var  startPoint   = new Syncfusion.Windows.Forms.Chart.ChartPoint(this.chartControl1.PrimaryXAxis.Range.Min, this.chartControl1.PrimaryYAxis.Range.Min + this.chartControl1.PrimaryYAxis.Range.Min);
         var  endPoint     = new Syncfusion.Windows.Forms.Chart.ChartPoint(this.chartControl1.PrimaryXAxis.Range.Min, this.chartControl1.PrimaryYAxis.Range.Min + this.chartControl1.PrimaryYAxis.Range.Max);
         var  dHeight      = Math.Abs(this.chartControl1.ChartArea.GetPointByValue(startPoint).Y - this.chartControl1.ChartArea.GetPointByValue(new Syncfusion.Windows.Forms.Chart.ChartPoint(startPoint.X, startPoint.YValues[0] + this.chartControl1.PrimaryYAxis.Range.Interval)).Y) / 2 + circleSize.Height / 2;
         Font textFont     = new Font("Arial", 8, FontStyle.Bold);
         int  k            = 0;
         for (double i = startPoint.YValues[0]; i < endPoint.YValues[0]; i += this.chartControl1.PrimaryYAxis.Range.Interval)
         {
             var point = this.chartControl1.ChartArea.GetPointByValue(new Syncfusion.Windows.Forms.Chart.ChartPoint(this.chartControl1.PrimaryXAxis.Range.Min, i));
             var brush = new SolidBrush(this.chartControl1.Series[k].Style.Interior.BackColor);
             gr.FillEllipse(brush, location.X - circleSize.Width - labelSpacing, point.Y - dHeight, circleSize.Width, circleSize.Height);
             var textSize = e.Graphics.MeasureString(text[k], Font, new PointF(location.X - circleSize.Width, point.Y - dHeight), StringFormat.GenericDefault);
             gr.DrawString(text[k], Font, Brushes.White, new PointF(location.X - circleSize.Width / 2 - labelSpacing - (textSize.Width / 2), point.Y - dHeight + circleSize.Height / 2 - textSize.Height / 2), StringFormat.GenericDefault);
             k++;
         }
     }
     if (ClearTrackBall)
     {
         TrackBallInfo.TrackBallLine.Color = Color.Orange;
         TrackBallInfo.TrackBallLine.Width = 2;
         e.Graphics.DrawLine(TrackBallInfo.TrackBallLine, closestPoint.X, bounds.Top, closestPoint.X, bounds.Bottom);
         DrawTrackBallToolTip(e.Graphics, point);
         ClearTrackBall = false;
     }
 }
Exemple #4
0
 void chartControl1_ChartRegionMouseMove(object sender, ChartRegionMouseEventArgs e)
 {
     bounds = this.chartControl1.ChartArea.RenderBounds;
     if (e.Point.X > bounds.Left && e.Point.X < bounds.Right && e.Point.Y > bounds.Top && e.Point.Y < bounds.Bottom)
     {
         point        = FindClosestChartPoint(e.Point);
         closestPoint = this.chartControl1.ChartArea.GetPointByValue(point);
         currentPoint = point;
         if (previousPoint.X != currentPoint.X)
         {
             ClearTrackBall = true;
             this.chartControl1.Refresh();
         }
     }
     previousPoint = currentPoint;
 }
Exemple #5
0
 private Syncfusion.Windows.Forms.Chart.ChartPoint FindClosestChartPoint(Point point)
 {
     Syncfusion.Windows.Forms.Chart.ChartPoint temp   = this.chartControl1.ChartArea.GetValueByPoint(point);
     Syncfusion.Windows.Forms.Chart.ChartPoint result = null;
     foreach (ChartSeries series in this.chartControl1.Series)
     {
         foreach (Syncfusion.Windows.Forms.Chart.ChartPoint point2 in series.Points)
         {
             if (result == null)
             {
                 result = point2;
                 continue;
             }
             if (Math.Abs(point2.X - temp.X) < Math.Abs(temp.X - result.X))
             {
                 result = point2;
             }
         }
     }
     return(result);
 }
Exemple #6
0
        void chartControl1_ChartRegionMouseMove(object sender, ChartRegionMouseEventArgs e)
        {
            Graphics  g      = this.chartControl1.CreateGraphics();
            Rectangle bounds = this.chartControl1.ChartArea.RenderBounds;

            if (e.Point.X > bounds.Left && e.Point.X < bounds.Right && e.Point.Y > bounds.Top && e.Point.Y < bounds.Bottom)
            {
                Syncfusion.Windows.Forms.Chart.ChartPoint point = FindClosestChartPoint(e.Point);
                Point closestPoint = this.chartControl1.ChartArea.GetPointByValue(point);
                currentPoint = point;
                if (previousPoint.X != currentPoint.X)
                {
                    updatePanel = false;
                    this.chartControl1.Refresh();
                    updatePanel = true;
                    TrackBallInfo.TrackBallLine.Color = Color.Orange;
                    TrackBallInfo.TrackBallLine.Width = 2;
                    g.DrawLine(TrackBallInfo.TrackBallLine, closestPoint.X, bounds.Top, closestPoint.X, bounds.Bottom);
                    DrawTrackBallToolTip(g, point);
                }
            }
            previousPoint = currentPoint;
        }