コード例 #1
0
        private void UpdateColors()
        {
            FlatColors colors = Helpers.GetColors(this);

            _ProgressColor = colors.Flat;
        }
コード例 #2
0
        private void UpdateColors()
        {
            FlatColors colors = Helpers.GetColors(this);

            _BorderColor = colors.Flat;
        }
コード例 #3
0
        protected override void OnPaint(PaintEventArgs e)
        {
            this.UpdateColors();

            Bitmap   B = new Bitmap(Width, Height);
            Graphics G = Graphics.FromImage(B);

            W = Width - 1;
            H = Height - 1;

            Rectangle    Base = new Rectangle(0, 24, W, H);
            GraphicsPath GP   = new GraphicsPath();
            GraphicsPath GP2  = new GraphicsPath();
            GraphicsPath GP3  = new GraphicsPath();

            var _with15 = G;

            _with15.SmoothingMode     = SmoothingMode.HighQuality;
            _with15.PixelOffsetMode   = PixelOffsetMode.HighQuality;
            _with15.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
            _with15.Clear(BackColor);

            //-- Progress Value
            //int iValue = Convert.ToInt32(((float)_Value) / ((float)(_Maximum * Width)));
            float percent = ((float)_Value) / ((float)_Maximum);
            int   iValue  = (int)(percent * ((float)Width));

            switch (Value)
            {
            case 0:
                //-- Base
                _with15.FillRectangle(new SolidBrush(_BaseColor), Base);
                //--Progress
                _with15.FillRectangle(new SolidBrush(_ProgressColor), new Rectangle(0, 24, iValue - 1, H - 1));
                break;

            case 100:
                //-- Base
                _with15.FillRectangle(new SolidBrush(_BaseColor), Base);
                //--Progress
                _with15.FillRectangle(new SolidBrush(_ProgressColor), new Rectangle(0, 24, iValue - 1, H - 1));
                break;

            default:
                //-- Base
                _with15.FillRectangle(new SolidBrush(_BaseColor), Base);

                //--Progress
                GP.AddRectangle(new Rectangle(0, 24, iValue - 1, H - 1));
                _with15.FillPath(new SolidBrush(_ProgressColor), GP);

                if (_Pattern)
                {
                    //-- Hatch Brush
                    HatchBrush HB = new HatchBrush(HatchStyle.Plaid, _DarkerProgress, _ProgressColor);
                    _with15.FillRectangle(HB, new Rectangle(0, 24, iValue - 1, H - 1));
                }

                if (_ShowBalloon)
                {
                    //-- Balloon
                    Rectangle Balloon = new Rectangle(iValue - 18, 0, 34, 16);
                    GP2 = Helpers.RoundRec(Balloon, 4);
                    _with15.FillPath(new SolidBrush(_BaseColor), GP2);

                    //-- Arrow
                    GP3 = Helpers.DrawArrow(iValue - 9, 16, true);
                    _with15.FillPath(new SolidBrush(_BaseColor), GP3);

                    //-- Value > You can add "%" > value & "%"
                    string text    = (_PercentSign ? Value.ToString() + "%" : Value.ToString());
                    int    wOffset = (_PercentSign ? iValue - 15 : iValue - 11);
                    _with15.DrawString(text, new Font("Segoe UI", 10), new SolidBrush(_ProgressColor), new Rectangle(wOffset, -2, W, H), Helpers.NearSF);
                }

                break;
            }

            base.OnPaint(e);
            G.Dispose();
            e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
            e.Graphics.DrawImageUnscaled(B, 0, 0);
            B.Dispose();
        }