示例#1
0
        protected override void OnPaint(PaintEventArgs e)
        {
            RoundedRectangle rect = new RoundedRectangle(0, 0,
                                                         this.Width, this.Height, 10);

            if (_map == null)
            {
                _map = new Bitmap(this.Width, this.Height);
            }
            Graphics g = Graphics.FromImage(_map);

            rect.Shrink(5);
            Border.Border border = new Border.Border3D();
            border.DrawBorder(g, rect.GetGraphicsPath());
            g.Clip = new Region(rect.GetGraphicsPath());
            Pen p = new Pen(Color.DarkGray);
            LinearGradientBrush b = new LinearGradientBrush(rect.ClientRect, Color.WhiteSmoke, _backColor, 90f);

            g.FillPath(b, rect.GetGraphicsPath());
            g.DrawPath(p, rect.GetGraphicsPath());
            if (_backImage != null)
            {
                g.DrawImage(_backImage, rect.ClientRect);
            }
            _bar = new Rectangle(rect.Left + 10, rect.Top + rect.Height / 2 - _barThinkness / 2, rect.Width - 20, _barThinkness);

            RoundedRectangle r2 = new RoundedRectangle(_bar, 5);

            if (_collection.Count > 2)
            {
                float temp = r2.Width / (_collection.Count - 1);
                if (temp >= 1)
                {
                    _interval = temp;
                }
            }
            else
            {
                _interval = r2.Width;
            }

            b.LinearColors = new Color[] { Color.Gray, Color.DarkGray };
            g.FillPath(b, r2.GetGraphicsPath());
            DrawMarking(g, _bar);
            if (_drag == null)
            {
                _drag = new Dragger(r2.ClientRect, Dragger.DragPosition.Horizontal);
            }
            if (_drag != null)
            {
                _drag.NormalColor   = _pointerBodyColor;
                _drag.SelectedColor = _pointerHoverColor;
                _drag.PointerColor  = _pointerColor;
            }
            _drag.draw(g);
            e.Graphics.DrawImage(_map, 0, 0);
        }
示例#2
0
        protected override void OnPaint(PaintEventArgs e)
        {
            RoundedRectangle rect = new RoundedRectangle(0, 0,
                                                         this.Width, this.Height, 10);

            if (_map == null)
            {
                _map = new Bitmap(this.Width, this.Height);
            }
            Graphics g = Graphics.FromImage(_map);

            rect.Shrink(5);
            Border.Border border = new Border.Border3D();
            border.DrawBorder(g, rect.GetGraphicsPath());
            Pen p = new Pen(Color.WhiteSmoke);
            LinearGradientBrush b = new LinearGradientBrush(rect.ClientRect, Color.WhiteSmoke, _backColor, 90f);

            g.FillPath(b, rect.GetGraphicsPath());
            g.DrawPath(p, rect.GetGraphicsPath());
            g.Clip = new Region(rect.GetGraphicsPath());
            if (_backImage != null)
            {
                g.DrawImage(_backImage, rect.ClientRect);
            }
            g.ResetClip();
            rect.Shrink(10);
            if (_panel != null)
            {
                _panel.Left               = rect.ClientRect.Left;
                _panel.Top                = rect.ClientRect.Top;
                _panel.Width              = rect.ClientRect.Width;
                _panel.Height             = rect.ClientRect.Height;
                _panel.DisplayValue       = _displayValue;
                _panel.DisplayFont        = _font;
                _panel.SweepAngle         = _sweepAngle;
                _panel.StartAngle         = _startGapAngle;
                _panel.PointerColor       = _pointerColor;
                _panel.PointerHandleColor = _pointerHandleColor;
                _panel.FontColor          = _fontColor;
                _panel.InnerBoderRing     = _border;
            }
            _panel.Draw(g);
            e.Graphics.DrawImage(_map, new Point(0, 0));
        }
示例#3
0
        protected override void OnPaint(PaintEventArgs e)
        {
            RoundedRectangle rect = new RoundedRectangle(0, 0,
                                                         this.Width, this.Height, 10);

            if (_map == null)
            {
                _map = new Bitmap(this.Width, this.Height);
            }
            Graphics g = Graphics.FromImage(_map);

            rect.Shrink(5);
            Border.Border border = new Border.Border3D();
            border.DrawBorder(g, rect.GetGraphicsPath());
            g.Clip = new Region(rect.GetGraphicsPath());
            PathGradientBrush pb = new PathGradientBrush(rect.GetGraphicsPath());

            if (_mouseDown == false)
            {
                pb.CenterColor    = Color.White;
                pb.SurroundColors = new Color[] { _backcolor };
                pb.CenterPoint    = new PointF(-2f, -2f);
            }
            else
            {
                pb.CenterColor    = Lighten(_backcolor);
                pb.SurroundColors = new Color[] { _backcolor };
            }
            g.FillPath(pb, rect.GetGraphicsPath());
            if (_offImage != null && _mouseDown == false)
            {
                g.DrawImage(_offImage, Helper.RectangleHelper.Shrink(rect.ClientRect, 5));
            }
            if (_onImage != null && _mouseDown == true)
            {
                g.DrawImage(_onImage, Helper.RectangleHelper.Shrink(rect.ClientRect, 5));
            }
            _light.ClientRect = new Rectangle(rect.Left + 5, 5, rect.Width - 10, 5);
            _light.Draw(g);
            e.Graphics.DrawImage(_map, 0, 0);
        }
示例#4
0
        protected override void OnPaint(PaintEventArgs e)
        {
            RoundedRectangle rect = new RoundedRectangle(0, 0,
                                                         this.Width, this.Height, 10);

            if (_map == null)
            {
                _map = new Bitmap(this.Width, this.Height);
            }
            Graphics g = Graphics.FromImage(_map);

            rect.Shrink(5);
            Border.Border border = new Border.Border3D();
            border.DrawBorder(g, rect.GetGraphicsPath());
            g.Clip = new Region(rect.GetGraphicsPath());
            Pen p = new Pen(Color.DarkGray);
            LinearGradientBrush b = new LinearGradientBrush(rect.ClientRect, Color.WhiteSmoke, _backColor, 90f);

            g.FillPath(b, rect.GetGraphicsPath());
            g.DrawPath(p, rect.GetGraphicsPath());
            if (_backgrdImage != null)
            {
                g.DrawImage(_backgrdImage, rect.ClientRect);
            }
            rect.Shrink(10);
            _panel.Left           = rect.ClientRect.Left;
            _panel.Top            = rect.ClientRect.Top;
            _panel.Width          = rect.ClientRect.Width;
            _panel.Height         = rect.ClientRect.Height;
            _panel.Align          = _alignment;
            _panel.FlipMarking    = _flipMarking;
            _panel.MarkingStyle   = _marking;
            _panel.DisplayValue   = _displayValue;
            _panel.IndicatorColor = _indicatorColor;
            _panel.LabelFont      = _font;
            _panel.LabelFontColor = _labelFontColor;

            _panel.Draw(g);
            e.Graphics.DrawImage(_map, new Point(0, 0));
        }
示例#5
0
        protected override void OnPaint(PaintEventArgs e)
        {
            RoundedRectangle rect = new RoundedRectangle(0, 0,
                                                         this.Width, this.Height, 10);

            if (_map == null)
            {
                _map = new Bitmap(this.Width, this.Height);
            }
            Graphics g = Graphics.FromImage(_map);

            rect.Shrink(5);
            Border.Border border = new Border.Border3D();
            border.DrawBorder(g, rect.GetGraphicsPath());
            //Draw the back image
            Pen p = new Pen(Color.DarkGray);
            LinearGradientBrush b = new LinearGradientBrush(rect.ClientRect, Color.WhiteSmoke, _backColor, 90f);

            g.FillPath(b, rect.GetGraphicsPath());
            g.DrawPath(p, rect.GetGraphicsPath());
            if (_backImage != null)
            {
                g.SetClip(rect.GetGraphicsPath());
                g.DrawImage(_backImage, rect.ClientRect);
                g.ResetClip();
            }
            _panel.Left             = rect.ClientRect.Left;
            _panel.Top              = rect.ClientRect.Top;
            _panel.Width            = rect.ClientRect.Width;
            _panel.Height           = rect.ClientRect.Height;
            _panel.KnobHandleimage  = _knobHandleImage;
            _panel.MarkingType      = _markingType;
            _panel.MarkingImageType = _markingImage;
            _panel.FontColor        = _fontColor;
            _panel.MainFont         = _font;
            _panel.Draw(g);
            e.Graphics.DrawImage(_map, new Point(0, 0));
        }
示例#6
0
        protected override void OnPaint(PaintEventArgs e)
        {
            RoundedRectangle rect = new RoundedRectangle(0, 0,
                                                         this.Width, this.Height, 10);

            if (_map == null)
            {
                _map = new Bitmap(this.Width, this.Height);
            }
            if (_font == null)
            {
                _font = new Font(FontFamily.GenericMonospace, 5);
            }
            Graphics g = Graphics.FromImage(_map);

            rect.Shrink(5);
            Border.Border border = new Border.Border3D();
            border.DrawBorder(g, rect.GetGraphicsPath());
            Pen p = new Pen(Color.DarkGray);
            LinearGradientBrush b = new LinearGradientBrush(rect.ClientRect, Color.WhiteSmoke, _backcolor, 90f);

            g.FillPath(b, rect.GetGraphicsPath());
            g.DrawPath(p, rect.GetGraphicsPath());
            GraphicsState state = g.Save();

            g.SetClip(rect.GetGraphicsPath());
            //Fill in backImgae
            if (_backimage != null)
            {
                g.DrawImage(_backimage, rect.ClientRect,
                            new Rectangle(0, 0, _backimage.Width, _backimage.Height), GraphicsUnit.Pixel);
            }
            g.Restore(state);

            int i     = 0;
            int width = CalculateWidth();

            foreach (RollingCounter dispanel  in _collection)
            {
                if (_alignment == Alignment.Center)
                {
                    dispanel.Left = i * width + _edgeOffsetFromX;
                }
                else if (_alignment == Alignment.Left)
                {
                    dispanel.Left = i * width + 7;
                }
                else
                {
                    dispanel.Left = i * width + 2 * _edgeOffsetFromX - 7;
                }
                dispanel.Top    = _edgeOffsetFromY;
                dispanel.Width  = width;
                dispanel.Height = this.Height - 2 * _edgeOffsetFromY;

                dispanel.Font = _font;

                /*dispanel.FontColor = _color;
                 * dispanel.MainColor = _counterColor;*/
                dispanel.ScrollEffect = _scrollEffect;
                dispanel.Draw(g);
                i++;
            }
            g.Dispose();
            e.Graphics.DrawImage(_map, new Point(0, 0));
        }
示例#7
0
        public void Draw(Graphics e)
        {
            int diff = _clientRect.X + _clientRect.Width / 2 - _meterWidth / 2 - _clientRect.X;

            if (_collection.Count > 1)
            {
                int temp = rect.Height / _collection.Count;
                if (temp >= 1)
                {
                    _interval = temp;
                }
            }
            else
            {
                _interval = rect.Height;
            }
            GraphicsState state = e.Save();

            if (_alignment == Alignment.right)
            {
                e.TranslateTransform(diff, 0);
            }
            else if (_alignment == Alignment.left)
            {
                e.TranslateTransform(-diff, 0);
            }

            e.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
            int        i = 1;
            RectangleF cRect;
            RectangleF pictRect;
            PointF     p1, p2;

            foreach (MeterLabel ml in _collection)
            {
                Size s = TextRenderer.MeasureText(ml.Desc, _font);
                if (_flipMarking == Flip.Left)
                {
                    p1       = new PointF(rect.Left, rect.Top + rect.Height - (i * _interval));
                    p2       = new PointF(rect.Left - 5, rect.Top + rect.Height - (i * _interval));
                    cRect    = new RectangleF(rect.Left - 5, rect.Top + rect.Height - (i * _interval), 5, _interval);
                    pictRect = new RectangleF(rect.Left - s.Width - 17, rect.Top + rect.Height - (i * _interval) - 6, 12, 12);
                    e.DrawString(ml.Desc, _font, new SolidBrush(LabelFontColor), rect.Left - s.Width - 5, rect.Top + rect.Height - (i * _interval) - s.Height / 2);
                }
                else
                {
                    p1       = new PointF(rect.Left + rect.Width, rect.Top + rect.Height - (i * _interval));
                    p2       = new PointF(rect.Left + rect.Width + 5, rect.Top + rect.Height - (i * _interval));
                    cRect    = new RectangleF(rect.Left + rect.Width, rect.Top + rect.Height - (i * _interval), 5, _interval);
                    pictRect = new RectangleF(rect.Left + rect.Width + s.Width, rect.Top + rect.Height - (i * _interval) - 6, 12, 12);
                    e.DrawString(ml.Desc, _font, new SolidBrush(LabelFontColor), rect.Left + rect.Width + 5, rect.Top + rect.Height - (i * _interval) - s.Height / 2);
                }
                if (ml.Image != null)
                {
                    e.DrawImage(ml.Image, pictRect, new RectangleF(0, 0, ml.Image.Width, ml.Image.Height), GraphicsUnit.Pixel);
                }
                if (_marking == Marking.BOTH || _marking == Marking.CONT)
                {
                    e.FillRectangle(new SolidBrush(Color.FromArgb(200, ml.MainColor)), cRect);
                }
                if (_marking == Marking.BOTH || _marking == Marking.LINE)
                {
                    e.DrawLine(new Pen(_labelFontColor), p1, p2);
                }
                i++;
            }
            Pen p = new Pen(Color.DarkGray, 2);

            e.FillPath(Brushes.White, rect.GetGraphicsPath());
            e.FillRectangle(new SolidBrush(_indicator), new RectangleF((float)rect.Left,
                                                                       (float)(rect.Top + rect.Height - yIndex),
                                                                       (float)rect.Width, yIndex));
            e.DrawPath(p, rect.GetGraphicsPath());
            e.Restore(state);
        }
示例#8
0
        protected override void OnPaint(PaintEventArgs e)
        {
            RoundedRectangle rect = new RoundedRectangle(0, 0,
                                                         this.Width, this.Height, 10);

            if (_map == null)
            {
                _map = new Bitmap(this.Width, this.Height);
            }
            Graphics g = Graphics.FromImage(_map);

            rect.Shrink(5);
            Border.Border border = new Border.Border3D();
            border.DrawBorder(g, rect.GetGraphicsPath());
            Pen p = new Pen(Color.DarkGray);
            LinearGradientBrush b = new LinearGradientBrush(rect.ClientRect, Color.WhiteSmoke, _backgrdColor, 90f);

            g.FillPath(b, rect.GetGraphicsPath());
            g.DrawPath(p, rect.GetGraphicsPath());
            g.Clip = new Region(rect.GetGraphicsPath());
            if (_backgrdImage != null)
            {
                g.DrawImage(_backgrdImage, rect.ClientRect);
            }
            rect.Shrink(5);
            g.Clip = new Region(rect.GetGraphicsPath());
            int left = 0;

            _panelLength = rect.Width / (_numberOfPanel + 2);
            _panelHeight = rect.Height;
            if (_location == location.FILL)
            {
                _panelLength = rect.Width / (_numberOfPanel) - 1;
                int totalLength = (_numberOfPanel * _panelLength) / 2;
                if (rect.Width / 2 > totalLength)
                {
                    left = rect.Left + (rect.Width / 2 - totalLength);
                }
            }
            else if (_location == location.LEFT)
            {
                left = rect.Left + 3;
            }
            else if (_location == location.CENTER)
            {
                int totalLength = (_numberOfPanel * _panelLength) / 2;
                if (rect.Width / 2 > totalLength)
                {
                    left = rect.Left + (rect.Width / 2 - totalLength);
                }
            }
            else
            {
                left = rect.Left + rect.Width - (_numberOfPanel * _panelLength);
            }
            int i = 0;

            foreach (DigitalPanel dp in _collection)
            {
                dp.Left        = left + i * (_panelLength);
                dp.Top         = rect.Top;
                dp.Width       = _panelLength - 1;
                dp.Height      = _panelHeight;
                dp.MainColor   = _fontColor;
                dp.BackColor   = _panelColor;
                dp.EnableGlare = _enableGlare;
                dp.Draw(g);

                i++;
            }
            e.Graphics.DrawImage(_map, new Point(0, 0));
        }