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