DotNet 4.8.1 build of DotNetBar

This commit is contained in:
2025-02-07 10:35:23 -05:00
parent 33439b63a0
commit 6b0a5d60f4
2609 changed files with 989814 additions and 7 deletions

View File

@@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
namespace DevComponents.DotNetBar.Rendering
{
internal class Office2010NavPaneButtonPainter : Office2007ButtonItemPainter
{
protected override void PaintStateBackground(ButtonItem button, Graphics g, Office2007ButtonItemStateColorTable stateColors, Rectangle r, IShapeDescriptor shape, bool isDefault, bool paintBorder)
{
if (stateColors == null || stateColors.Background == null || stateColors.Background.IsEmpty)
return;
Rectangle shadowRect = r;
ShadowPaintInfo spi = new ShadowPaintInfo();
spi.Graphics = g;
spi.Rectangle = shadowRect;
ShadowPainter.Paint3(spi);
r.Width -= 4;
r.Height -= 4;
r.Offset(1, 1);
DisplayHelp.FillRectangle(g, r, stateColors.Background);
if (stateColors.BottomBackgroundHighlight != null && !stateColors.BottomBackgroundHighlight.IsEmpty)
{
Rectangle ellipse = new Rectangle(r.X, r.Y + r.Height / 2 - 2, r.Width, r.Height + 4);
GraphicsPath path = new GraphicsPath();
path.AddEllipse(ellipse);
PathGradientBrush brush = new PathGradientBrush(path);
brush.CenterColor = stateColors.BottomBackgroundHighlight.Start;
brush.SurroundColors = new Color[] { stateColors.BottomBackgroundHighlight.End };
brush.CenterPoint = new PointF(ellipse.X + ellipse.Width / 2, r.Bottom);
Blend blend = new Blend();
blend.Factors = new float[] { 0f, .5f, .6f };
blend.Positions = new float[] { .0f, .4f, 1f };
brush.Blend = blend;
g.FillRectangle(brush, r);
brush.Dispose();
path.Dispose();
}
DisplayHelp.DrawGradientRectangle(g, r, stateColors.OuterBorder, 1);
r.Inflate(-1, -1);
DisplayHelp.DrawGradientRectangle(g, r, stateColors.InnerBorder, 1);
}
}
}