/// <summary> /// </summary> /// <param name="paintParams"></param> /// <exception cref="ArgumentNullException"> /// <para><paramref name="paintParams"/> is <see langword="null"/>.</para> /// </exception> public void DrawTrackButton(NuGenTrackButtonPaintParams paintParams) { if (paintParams == null) { throw new ArgumentNullException("paintParams"); } Graphics g = paintParams.Graphics; Rectangle bounds = paintParams.Bounds; NuGenControlState state = paintParams.State; TickStyle tickStyle = paintParams.Style; Rectangle borderRectangle = NuGenControlPaint.BorderRectangle(bounds); using (NuGenGrfxMode mode = new NuGenGrfxMode(g)) { g.SmoothingMode = SmoothingMode.AntiAlias; using (GraphicsPath gp = NuGenSmoothTrackBarRenderer.GetGraphicsPath(borderRectangle, tickStyle)) { /* Background */ using ( Brush brush = this.GetBackgroundBrush( borderRectangle, state == NuGenControlState.Normal || state == NuGenControlState.Focused ? NuGenControlState.Hot : state ) ) { g.FillPath(brush, gp); } /* Body */ Rectangle bodyRectangle = Rectangle.Inflate(borderRectangle, 0, -3); using (GraphicsPath bgp = NuGenSmoothTrackBarRenderer.GetBodyGraphicsPath(borderRectangle, tickStyle)) using (Brush brush = this.GetBackgroundBrush(bodyRectangle, state)) { g.FillPath(brush, bgp); } /* Border */ using (Pen pen = this.GetBorderPen(state)) { g.DrawPath(pen, gp); } } } }
/* * OnPaint */ /// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; if (this.Orientation == NuGenOrientationStyle.Vertical) { NuGenControlPaint.Make90CCWGraphics(g, this.ClientRectangle); } NuGenTrackButtonPaintParams paintParams = new NuGenTrackButtonPaintParams(g); paintParams.Bounds = NuGenControlPaint.OrientationAgnosticRectangle( this.ClientRectangle, this.Orientation ); paintParams.State = this.ButtonStateTracker.GetControlState(); paintParams.Style = this.TickStyle; this.Renderer.DrawTrackButton(paintParams); }