Esempio n. 1
0
        // Renders the Range Control's viewport.
        void IRangeControlClient.DrawContent(RangeControlPaintEventArgs e)
        {
            Rectangle rect = e.ContentBounds;

            rect.Inflate(0, -3);
            rect.Height -= ((IRangeControlClient)this).RangeBoxBottomIndent;
            DrawZeroLine(e, rect);
            DrawGraph(e, rect);
        }
Esempio n. 2
0
        protected virtual void DrawZeroLine(RangeControlPaintEventArgs e, Rectangle contentBounds)
        {
            double zeroLine = (double)(MaxValue - 0) / (MaxValue - MinValue);

            if (zeroLine < 0.0 || zeroLine >= 1.0f)
            {
                return;
            }
            int y = (int)(contentBounds.Y + zeroLine * contentBounds.Height);

            e.Graphics.DrawLine(Pens.Gray, new Point(contentBounds.X, y), new Point(contentBounds.Right, y));
        }
Esempio n. 3
0
        protected virtual void DrawGraph(RangeControlPaintEventArgs e, Rectangle contentBounds)
        {
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            int   start     = Math.Max(0, (int)(e.RangeControl.VisibleRangeStartPosition * BarCount) - 2);
            int   end       = Math.Min(Data.Length, start + ((int)(e.RangeControl.VisibleRangeWidth * BarCount) + 4));
            Point?prevPoint = null;

            using (Pen pen = new Pen(Color.Blue, 1)) {
                for (int i = start; i < end; i++)
                {
                    int y = contentBounds.Y + contentBounds.Height - (int)((double)(Data[i] - MinValue) / (MaxValue - MinValue) * contentBounds.Height);
                    int x = e.CalcX((double)i / BarCount);
                    if (prevPoint.HasValue)
                    {
                        e.Cache.DrawLine(new Point(prevPoint.Value.X, prevPoint.Value.Y), new Point(x, y), Color.Blue, 1);
                    }
                    prevPoint = new Point(x, y);
                }
            }
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default;
        }
Esempio n. 4
0
 void IRangeControlClient.DrawContent(RangeControlPaintEventArgs e) {
     DrawGraph(e.Graphics, e.ContentBounds);
 }
Esempio n. 5
0
 bool IRangeControlClient.DrawRuler(RangeControlPaintEventArgs e) {
     return false;
 }
Esempio n. 6
0
 void IRangeControlClient.DrawSelection(RangeControlPaintEventArgs e)
 {
 }
Esempio n. 7
0
 Rectangle IRangeControlClient.CalculateSelectionBounds(RangeControlPaintEventArgs e, Rectangle rect)
 {
     return(rect);
 }
Esempio n. 8
0
 //TODO
 public void DrawSelection(RangeControlPaintEventArgs e)
 {
     ;
 }
Esempio n. 9
0
 // Return true if the Client draws the ruler itself.
 bool IRangeControlClient.DrawRuler(RangeControlPaintEventArgs e)
 {
     return(false);
 }
Esempio n. 10
0
 //TODO
 public Rectangle CalculateSelectionBounds(RangeControlPaintEventArgs e, Rectangle rect)
 {
     return(rect);
 }
Esempio n. 11
0
 void IRangeControlClient.DrawContent(RangeControlPaintEventArgs e)
 {
     DrawGraph(e.Cache, e.ContentBounds);
 }
Esempio n. 12
0
 Rectangle IRangeControlClient.CalculateSelectionBounds(RangeControlPaintEventArgs e, Rectangle rect) =>
 RangeControlClient.CalculateSelectionBounds(e, rect);
Esempio n. 13
0
 bool IRangeControlClient.DrawRuler(RangeControlPaintEventArgs e) =>
 RangeControlClient.DrawRuler(e);
Esempio n. 14
0
 void IRangeControlClient.DrawContent(RangeControlPaintEventArgs e) =>
 RangeControlClient.DrawContent(e);