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

DrawRibbonAppButtonUpperHalf() protected method

Internal rendering method.
protected DrawRibbonAppButtonUpperHalf ( Graphics g, MementoRibbonAppButton memento, PaletteState state, Color topDark, Color bottomDark, Color topLight, Color topMedium, bool trackBorderAsPressed ) : void
g System.Drawing.Graphics
memento MementoRibbonAppButton
state PaletteState
topDark Color
bottomDark Color
topLight Color
topMedium Color
trackBorderAsPressed bool
return void
        protected virtual void DrawRibbonAppButtonUpperHalf(Graphics g,
                                                            MementoRibbonAppButton memento,
                                                            PaletteState state,
                                                            Color topDark,
                                                            Color bottomDark,
                                                            Color topLight,
                                                            Color topMedium,
                                                            bool trackBorderAsPressed)
        {
            bool pressed = (state == PaletteState.Pressed);
            bool tracking = (state == PaletteState.Tracking);

            // Override tracking/pressed states?
            if (tracking && trackBorderAsPressed)
            {
                pressed = true;
                tracking = false;
            }

            if (!pressed)
            {
                Color[] colorsUpperHalf = new Color[] { topDark, topMedium, topLight, topLight, topMedium, topDark };
                float[] posUpperHalf = new float[] { 0.0f, 0.2f, 0.4f, 0.6f, 0.8f, 1.0f };

                ColorBlend blendUpperHalf = new ColorBlend();
                blendUpperHalf.Colors = colorsUpperHalf;
                blendUpperHalf.Positions = posUpperHalf;
                memento.brushUpper1.InterpolationColors = blendUpperHalf;

                g.FillPie(memento.brushUpper1, memento.rect.X, memento.rect.Y, memento.rect.Width, memento.rect.Height, 180, 180);
            }

            Color c1 = _whiten10;
            Color c2 = Color.FromArgb(100, topDark);

            if (tracking)
            {
                c1 = _whiten200;
                c2 = Color.FromArgb(200, bottomDark);
            }

            if (pressed)
            {
                c1 = Color.White;
                c2 = topDark;
            }

            using (LinearGradientBrush brushUpper2 = new LinearGradientBrush(memento.rect, c1, c2, LinearGradientMode.Vertical))
                g.FillPie(brushUpper2, memento.rect.X, memento.rect.Y, memento.rect.Width, memento.rect.Height, 180, 180);
        }
RenderStandard