using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace friction { public static class Theme { public static Color Backcolor = Color.FromArgb(255, 45, 45, 48); public static Color BackColorTrans = Color.FromArgb(230, 45, 45, 48); public static Color Forecolor = Color.FromArgb(255, 235, 235, 235); public static Color Green = Color.LimeGreen; //public static Color Yellow = Color.Gold; public static Color Yellow = Color.FromArgb(255, 255, 165, 0); public static Color Red = Color.OrangeRed; public static Color Gray = Color.DarkGray; public static Color White = Color.Snow; public static void Apply(Control ctrl) { ctrl.BackColor = Backcolor; ctrl.ForeColor = Forecolor; } public static void Apply(DataGridView ctrl) { ctrl.BackgroundColor = Backcolor; ctrl.DefaultCellStyle.BackColor = Backcolor; ctrl.DefaultCellStyle.ForeColor = Forecolor; ctrl.EnableHeadersVisualStyles = false; ctrl.ColumnHeadersDefaultCellStyle.BackColor = Backcolor; ctrl.ColumnHeadersDefaultCellStyle.ForeColor = Forecolor; ctrl.RowHeadersDefaultCellStyle.BackColor = Backcolor; ctrl.RowHeadersDefaultCellStyle.ForeColor = Forecolor; } public static void Apply(ListView ctrl) { ctrl.BackColor = Backcolor; ctrl.ForeColor = Forecolor; ctrl.OwnerDraw = true; ctrl.DrawColumnHeader += new DrawListViewColumnHeaderEventHandler ( (sender, e) => ListViewHeaderDraw(sender, e, Backcolor, Forecolor) ); ctrl.DrawItem += new DrawListViewItemEventHandler(ListViewBodyDraw); } private static void ListViewHeaderDraw(object sender, DrawListViewColumnHeaderEventArgs e, Color backColor, Color foreColor) { e.Graphics.FillRectangle(new SolidBrush(backColor), e.Bounds); e.Graphics.DrawString(e.Header.Text, e.Font, new SolidBrush(foreColor), e.Bounds); } private static void ListViewBodyDraw(object sender, DrawListViewItemEventArgs e) { e.DrawDefault = true; } public class MenustripColor : ProfessionalColorTable { public override Color MenuItemSelected { get { return BackColorTrans; } } public override Color MenuItemSelectedGradientBegin { get { return BackColorTrans; } } public override Color MenuItemSelectedGradientEnd { get { return BackColorTrans; } } public override Color MenuItemPressedGradientBegin { get { return Backcolor; } } public override Color MenuItemPressedGradientEnd { get { return Backcolor; } } public override Color MenuItemBorder { get { return BackColorTrans; } } public override Color MenuBorder { get { return Backcolor; } } } class MenustripRenderer : ToolStripProfessionalRenderer { public MenustripRenderer() : base(new MenustripColor()) { } protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e) { if (e.Item.Enabled) base.OnRenderMenuItemBackground(e); else { e.Item.BackColor = Backcolor; base.OnRenderMenuItemBackground(e); if (e.Item.Selected == true) { e.Item.ImageTransparentColor = Backcolor; base.OnRenderMenuItemBackground(e); } } } protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e) { if (e.Item.Enabled) base.OnRenderMenuItemBackground(e); } } public static void Apply(MenuStrip ctrl) { ctrl.BackColor = Backcolor; ctrl.ForeColor = Forecolor; foreach (ToolStripMenuItem item in ctrl.Items) { foreach (ToolStripMenuItem subitem in item.DropDownItems) { subitem.BackColor = Backcolor; subitem.ForeColor = Forecolor; subitem.MouseEnter += Ctrl_MouseEnter; subitem.MouseLeave += Ctrl_MouseLeave; } item.BackColor = Backcolor; item.ForeColor = Forecolor; item.MouseEnter += Ctrl_MouseEnter; item.MouseLeave += Ctrl_MouseLeave; } ctrl.Renderer = new MenustripRenderer(); } private static void Ctrl_MouseEnter(object sender, EventArgs e) { if(sender is ToolStripMenuItem) { ((ToolStripMenuItem)sender).ForeColor = Color.Orange; } } private static void Ctrl_MouseLeave(object sender, EventArgs e) { if (sender is ToolStripMenuItem) { ((ToolStripMenuItem)sender).ForeColor = Forecolor; } } } }