ComponentFactory.Krypton.Toolkit.RenderStandard.DrawBack C# (CSharp) Method

DrawBack() public method

Draw background to fill the specified path.
public DrawBack ( RenderContext context, Rectangle rect, GraphicsPath path, IPaletteBack palette, VisualOrientation orientation, PaletteState state, IDisposable memento ) : IDisposable
context RenderContext Rendering context.
rect System.Drawing.Rectangle Target rectangle that encloses path.
path System.Drawing.Drawing2D.GraphicsPath Graphics path.
palette IPaletteBack Palette used for drawing.
orientation VisualOrientation Visual orientation of the border.
state PaletteState State associated with rendering.
memento IDisposable Cache used for drawing.
return IDisposable
        public override IDisposable DrawBack(RenderContext context,
									         Rectangle rect,
									         GraphicsPath path,
									         IPaletteBack palette,
									         VisualOrientation orientation,
									         PaletteState state,
                                             IDisposable memento)
        {
            Debug.Assert(context != null);
            Debug.Assert(path != null);
            Debug.Assert(palette != null);

            // Validate parameter references
            if (context == null) throw new ArgumentNullException("context");
            if (palette == null) throw new ArgumentNullException("palette");

            Debug.Assert(context.Control != null);
            Debug.Assert(!context.Control.IsDisposed);

            // Is there anything to actually draw?
            if ((rect.Width > 0) && (rect.Height > 0))
            {
                // We want to draw using anti aliasing for a nice smooth effect
                using (GraphicsHint smooth = new GraphicsHint(context.Graphics, palette.GetBackGraphicsHint(state)))
                {
                    // Cache commonly used values
                    Image backImage = palette.GetBackImage(state);
                    PaletteImageStyle backImageStyle = palette.GetBackImageStyle(state);
                    PaletteColorStyle backColorStyle = palette.GetBackColorStyle(state);
                    Color backColor1 = palette.GetBackColor1(state);
                    Color backColor2 = palette.GetBackColor2(state);
                    float backColorAngle = palette.GetBackColorAngle(state);

                    // Get the rectangle to use when dealing with gradients
                    Rectangle gradientRect = context.GetAlignedRectangle(palette.GetBackColorAlign(state), rect);

                    switch (backColorStyle)
                    {
                        case PaletteColorStyle.GlassSimpleFull:
                            memento = RenderGlassHelpers.DrawBackGlassSimpleFull(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassNormalFull:
                            memento = RenderGlassHelpers.DrawBackGlassNormalFull(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassTrackingFull:
                            memento = RenderGlassHelpers.DrawBackGlassTrackingFull(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassPressedFull:
                            memento = RenderGlassHelpers.DrawBackGlassPressedFull(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassCheckedFull:
                            memento = RenderGlassHelpers.DrawBackGlassCheckedFull(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassCheckedTrackingFull:
                            memento = RenderGlassHelpers.DrawBackGlassCheckedTrackingFull(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassNormalStump:
                            memento = RenderGlassHelpers.DrawBackGlassNormalStump(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassTrackingStump:
                            memento = RenderGlassHelpers.DrawBackGlassTrackingStump(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassPressedStump:
                            memento = RenderGlassHelpers.DrawBackGlassPressedStump(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassCheckedStump:
                            memento = RenderGlassHelpers.DrawBackGlassCheckedStump(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassCheckedTrackingStump:
                            memento = RenderGlassHelpers.DrawBackGlassCheckedTrackingStump(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassThreeEdge:
                            memento = RenderGlassHelpers.DrawBackGlassThreeEdge(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassNormalSimple:
                            memento = RenderGlassHelpers.DrawBackGlassNormalSimple(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassTrackingSimple:
                            memento = RenderGlassHelpers.DrawBackGlassTrackingSimple(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassPressedSimple:
                            memento = RenderGlassHelpers.DrawBackGlassPressedSimple(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassCheckedSimple:
                            memento = RenderGlassHelpers.DrawBackGlassCheckedSimple(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassCheckedTrackingSimple:
                            memento = RenderGlassHelpers.DrawBackGlassCheckedTrackingSimple(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassCenter:
                            memento = RenderGlassHelpers.DrawBackGlassCenter(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassBottom:
                            memento = RenderGlassHelpers.DrawBackGlassBottom(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.GlassFade:
                            memento = RenderGlassHelpers.DrawBackGlassFade(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.ExpertTracking:
                            memento = RenderExpertHelpers.DrawBackExpertTracking(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.ExpertPressed:
                            memento = RenderExpertHelpers.DrawBackExpertPressed(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.ExpertChecked:
                            memento = RenderExpertHelpers.DrawBackExpertChecked(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.ExpertCheckedTracking:
                            memento = RenderExpertHelpers.DrawBackExpertCheckedTracking(context, rect, backColor1, backColor2, orientation, path, memento);
                            break;
                        case PaletteColorStyle.ExpertSquareHighlight:
                            memento = RenderExpertHelpers.DrawBackExpertSquareHighlight(context, rect, backColor1, backColor2, orientation, path, memento, false);
                            break;
                        case PaletteColorStyle.ExpertSquareHighlight2:
                            memento = RenderExpertHelpers.DrawBackExpertSquareHighlight(context, rect, backColor1, backColor2, orientation, path, memento, true);
                            break;
                        case PaletteColorStyle.SolidInside:
                            DrawBackSolidInside(context, gradientRect, backColor1, backColor2, path);
                            break;
                        case PaletteColorStyle.SolidLeftLine:
                        case PaletteColorStyle.SolidRightLine:
                        case PaletteColorStyle.SolidTopLine:
                        case PaletteColorStyle.SolidBottomLine:
                        case PaletteColorStyle.SolidAllLine:
                            DrawBackSolidLine(context, rect, backColor1, backColor2, backColorStyle, path);
                            break;
                        case PaletteColorStyle.OneNote:
                            DrawBackOneNote(context, gradientRect, backColor1, backColor2,
                                            backColorStyle, backColorAngle, orientation, path);
                            break;
                        case PaletteColorStyle.RoundedTopLeftWhite:
                            DrawBackRoundedTopLeftWhite(context, rect, gradientRect, backColor1, backColor2,
                                                        backColorStyle, backColorAngle, orientation, path);
                            break;
                        case PaletteColorStyle.RoundedTopLight:
                            DrawBackRoundedTopLight(context, rect, gradientRect, backColor1, backColor2,
                                                    backColorStyle, backColorAngle, orientation, path);
                            break;
                        case PaletteColorStyle.Rounding4:
                            DrawBackRounded4(context, rect, gradientRect, backColor1, backColor2,
                                             backColorStyle, backColorAngle, orientation, path);
                            break;
                        case PaletteColorStyle.Rounding5:
                            DrawBackRounding5(context, rect, gradientRect, backColor1, backColor2,
                                                  backColorStyle, backColorAngle, orientation, path);
                            break;
                        case PaletteColorStyle.LinearShadow:
                            DrawBackLinearShadow(context, rect, gradientRect, backColor1, backColor2,
                                                 backColorStyle, backColorAngle, orientation, path);
                            break;
                        default:
                            // Use standard helper routine to create appropriate color brush
                            using (Brush backBrush = CreateColorBrush(gradientRect, backColor1, backColor2,
                                                                      backColorStyle, backColorAngle, orientation))
                            {
                                context.Graphics.FillPath(backBrush, path);
                            }
                            break;
                    }

                    // Do we need to draw the image?
                    if (ShouldDrawImage(backImage))
                    {
                        // Get the rectangle to use when dealing with gradients
                        Rectangle imageRect = context.GetAlignedRectangle(palette.GetBackImageAlign(state), rect);

                        // Use standard helper routine to create appropriate image brush
                        using (Brush backBrush = CreateImageBrush(imageRect, backImage, backImageStyle))
                            context.Graphics.FillPath(backBrush, path);
                    }
                }
            }

            return memento;
        }
RenderStandard