📄 blackwhitemenustrip.cs
字号:
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace CH9
{
public partial class BlackWhiteMenuStrip : MenuStrip
{
private class BlackWhiteMenuStripRenderer : ToolStripProfessionalRenderer
{
public BlackWhiteMenuStripRenderer()
: base(new BlackWhiteMenuStripColorTable())
{
}
public new BlackWhiteMenuStripColorTable ColorTable
{
get
{
return (BlackWhiteMenuStripColorTable)base.ColorTable;
}
}
protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
{
e.Graphics.Clear(ColorTable.MyBackgroundColor);
}
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
{
if ((e.Item.Selected || e.Item.Pressed))
{
using (Brush b = new SolidBrush(ColorTable.MySelectedMenuItemBackgroundColor))
{
Rectangle itemBounds = new Rectangle(Point.Empty, e.Item.Size);
e.Graphics.FillRectangle(b, itemBounds);
}
}
else
{
base.OnRenderMenuItemBackground(e);
}
}
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
if (e.Item.Selected)
{
e.TextColor = Color.Gold;
}
else
{
e.Item.ForeColor = Color.White;
}
base.OnRenderItemText(e);
}
protected override void OnRenderImageMargin(ToolStripRenderEventArgs e)
{
}
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
{
using(Brush b = new SolidBrush(ColorTable.MyBackgroundColor))
{
e.Graphics.FillRectangle(b, e.ConnectedArea);
}
}
}
private class BlackWhiteMenuStripColorTable : ProfessionalColorTable
{
public override Color SeparatorDark
{
get
{
return Color.FromArgb(60, 60, 60);
}
}
public override Color SeparatorLight
{
get
{
return Color.FromArgb(140, 140, 140);
}
}
public Color MyBackgroundColor
{
get
{
return Color.FromArgb(110, 110, 110);
}
}
public Color MySelectedMenuItemBackgroundColor
{
get
{
return Color.FromArgb(80, 80, 80);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -