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); } } }