Esempio n. 1
0
        private void DrawDefaultThunm(
            Graphics g, Rectangle thumbRect,
            Color begin, Color end, Color border, float mode,
            Orientation orientation, TickStyle tickStyle)
        {
            ThumbArrowDirection direction = ThumbArrowDirection.None;

            switch (orientation)
            {
            case Orientation.Horizontal:
                switch (tickStyle)
                {
                case TickStyle.None:
                case TickStyle.BottomRight:
                    direction = ThumbArrowDirection.Down;
                    break;

                case TickStyle.TopLeft:
                    direction = ThumbArrowDirection.Up;
                    break;

                case TickStyle.Both:
                    direction = ThumbArrowDirection.None;
                    break;
                }
                break;

            case Orientation.Vertical:
                switch (tickStyle)
                {
                case TickStyle.TopLeft:
                    direction = ThumbArrowDirection.Left;
                    break;

                case TickStyle.None:
                case TickStyle.BottomRight:
                    direction = ThumbArrowDirection.Right;
                    break;

                case TickStyle.Both:
                    direction = ThumbArrowDirection.None;
                    break;
                }
                break;
            }
            using (GraphicsPath path =
                       GraphicsPathHelper.CreateTrackBarThumbPath(
                           thumbRect, direction))
            {
                using (LinearGradientBrush brush = new LinearGradientBrush(
                           thumbRect, begin, end, mode))
                {
                    Blend blend = new Blend();
                    blend.Positions = new float[] { 0, .2f, .5f, .8f, 1f };
                    blend.Factors   = new float[] { 1f, .7f, 0, .7f, 1f };
                    brush.Blend     = blend;

                    g.FillPath(brush, path);
                }
                using (Pen pen = new Pen(border))
                {
                    g.DrawPath(pen, path);
                }
            }

            thumbRect.Inflate(-1, -1);
            using (GraphicsPath path =
                       GraphicsPathHelper.CreateTrackBarThumbPath(
                           thumbRect, direction))
            {
                using (Pen pen = new Pen(InnerBorderColor))
                {
                    g.DrawPath(pen, path);
                }
            }
        }