Esempio n. 1
0
        private void DrawBarRectangle(int barIndex, int barsCount, Graphics g)
        {
            Rectangle rClnt = this.ClientRectangle;
            Rectangle rBar  = new Rectangle();

            int barPercent = (int)Math.Ceiling(100.0 * (barIndex) / (double)barsCount);

            if (_orientation == Orientation.Vertical)
            {
                rBar.X      = rClnt.X + _margin;
                rBar.Y      = rClnt.Y + _margin + barIndex * _barSize;
                rBar.Width  = rClnt.Width - 2 * _margin;
                rBar.Height = _barSize - _margin;

                //if out of bounds
                if (rBar.Y + rBar.Height + _margin > this.Height)
                {
                    rBar.Height = rClnt.Height - rBar.Y - _margin;
                }

                barPercent = (int)Math.Ceiling(100.0 * (barsCount - barIndex - 1) / (double)barsCount);
            }
            else
            {
                rBar.X      = rClnt.X + _margin + barIndex * _barSize;
                rBar.Y      = rClnt.Y + _margin;
                rBar.Width  = _barSize - _margin;
                rBar.Height = rClnt.Height - 2 * _margin;

                //if out of bounds
                if (rBar.X + rBar.Width + _margin > this.Width)
                {
                    rBar.Width = rClnt.Width - rBar.X - _margin;
                }
            }

            bool  isBarActive = IsBarActive(barPercent);
            Brush brush       = ColorTheme.GetColor(barPercent, isBarActive);

            if (Enabled)
            {
                g.FillRectangle(brush, rBar);
            }
            else
            {
                g.DrawRectangle(Pens.Silver, rBar);
            }
        }