init lserp cs 5.0

This commit is contained in:
cyf
2026-07-10 15:25:05 +08:00
commit 90f3fda86a
3799 changed files with 976868 additions and 0 deletions
@@ -0,0 +1,194 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Lskj.Main
{
/// <summary>
/// 自定义MenuStrip样式
/// </summary>
public class CustomProfessionalRenderer : ToolStripProfessionalRenderer
{
private Color _color;
public CustomProfessionalRenderer():base()
{
}
public CustomProfessionalRenderer(Color color):base()
{
_color = color;
}
/// <summary>
/// 获取圆角矩形区域
/// </summary>
/// <param name="rect"></param>
/// <param name="radius"></param>
/// <returns></returns>
public static GraphicsPath GetRoundedRectPath(Rectangle rect, int radius)
{
int diameter = radius;
Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
GraphicsPath path = new GraphicsPath();
// 左上角
path.AddArc(arcRect, 180, 90);
// 右上角
arcRect.X = rect.Right - diameter;
path.AddArc(arcRect, 270, 90);
// 右下角
arcRect.Y = rect.Bottom - diameter;
path.AddArc(arcRect, 0, 90);
// 左下角
arcRect.X = rect.Left;
path.AddArc(arcRect, 90, 90);
path.CloseFigure();
return path;
}
/// <summary>
/// 渲染背景
/// </summary>
/// <param name="e"></param>
protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
{
ToolStrip toolStrip = e.ToolStrip;
Graphics g = e.Graphics;
g.SmoothingMode = SmoothingMode.HighQuality;//抗锯齿
Rectangle bounds = e.AffectedBounds;
LinearGradientBrush lgbrush = new LinearGradientBrush(new Point(0, 0), new Point(0, toolStrip.Height), Color.FromArgb(255, Color.White), Color.FromArgb(150, _color));
if (toolStrip is MenuStrip)
{
//由menuStrip的Paint方法定义 这里不做操作
}
else if (toolStrip is ToolStripDropDown)
{
int diameter = 10;//直径
GraphicsPath path = new GraphicsPath();
Rectangle rect = new Rectangle(Point.Empty, toolStrip.Size);
Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
path.AddLine(0, 0, 10, 0);
// 右上角
arcRect.X = rect.Right - diameter;
path.AddArc(arcRect, 270, 90);
// 右下角
arcRect.Y = rect.Bottom - diameter;
path.AddArc(arcRect, 0, 90);
// 左下角
arcRect.X = rect.Left;
path.AddArc(arcRect, 90, 90);
path.CloseFigure();
toolStrip.Region = new Region(path);
g.FillPath(lgbrush, path);
}
else
{
base.OnRenderToolStripBackground(e);
}
}
/// <summary>
/// 渲染边框 不绘制边框
/// </summary>
/// <param name="e"></param>
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
//不调用基类的方法 屏蔽掉该方法 去掉边框
}
/// <summary>
/// 渲染箭头颜色
/// </summary>
/// <param name="e"></param>
protected override void OnRenderArrow(ToolStripArrowRenderEventArgs e)
{
e.ArrowColor = _color;
base.OnRenderArrow(e);
}
/// <summary>
/// 渲染菜单项
/// </summary>
/// <param name="e"></param>
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
{
Graphics g = e.Graphics;
ToolStripItem item = e.Item;
ToolStrip toolstrip = e.ToolStrip;
//渲染顶级项
if (toolstrip is MenuStrip)
{
LinearGradientBrush lgbrush = new LinearGradientBrush(new Point(0, 0), new Point(0, item.Height), Color.FromArgb(100, Color.White), Color.FromArgb(0, Color.White));
SolidBrush brush = new SolidBrush(Color.FromArgb(255, Color.White));
if (e.Item.Selected)
{
GraphicsPath gp = GetRoundedRectPath(new Rectangle(new Point(0, 0), item.Size), 5);
g.FillPath(lgbrush, gp);
}
if (item.Pressed)
{
////创建上面左右2圆角的矩形路径
//GraphicsPath path = new GraphicsPath();
//int diameter = 8;
//Rectangle rect = new Rectangle(Point.Empty, item.Size);
//Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));
//// 左上角
//path.AddArc(arcRect, 180, 90);
//// 右上角
//arcRect.X = rect.Right - diameter;
//path.AddArc(arcRect, 270, 90);
//path.AddLine(new Point(rect.Width, rect.Height), new Point(0, rect.Height));
//path.CloseFigure();
////填充路径
//g.FillPath(brush, path);
g.FillRectangle(Brushes.White, new Rectangle(Point.Empty, item.Size));
}
}
//渲染下拉项
else if (toolstrip is ToolStripDropDown)
{
g.SmoothingMode = SmoothingMode.HighQuality;
LinearGradientBrush lgbrush = new LinearGradientBrush(new Point(0, 0), new Point(item.Width, 0), Color.FromArgb(200, _color), Color.FromArgb(0, Color.White));
if (item.Selected)
{
GraphicsPath gp = GetRoundedRectPath(new Rectangle(0, 0, item.Width, item.Height), 10);
g.FillPath(lgbrush, gp);
}
}
else
{
base.OnRenderMenuItemBackground(e);
}
}
/// <summary>
/// 渲染分割线
/// </summary>
/// <param name="e"></param>
protected override void OnRenderSeparator(ToolStripSeparatorRenderEventArgs e)
{
Graphics g = e.Graphics;
LinearGradientBrush lgbrush = new LinearGradientBrush(new Point(0, 0), new Point(e.Item.Width, 0), _color, Color.FromArgb(0, _color));
g.FillRectangle(lgbrush, new Rectangle(3, e.Item.Height / 2, e.Item.Width, 1));
//base.OnRenderSeparator(e);
}
/// <summary>
/// 渲染下拉菜单的左边图片区域
/// </summary>
/// <param name="e"></param>
protected override void OnRenderImageMargin(ToolStripRenderEventArgs e)
{
//base.OnRenderImageMargin(e);
//屏蔽掉左边图片竖条
}
}
}