- 툴바 아이콘 지정

- 메뉴바 테마 적용
- 메뉴바 기능 연결
- 파일 로딩 후 기능들 연결
This commit is contained in:
2017-06-20 03:52:08 +09:00
parent 7be92b315a
commit 760ce6abc2
23 changed files with 6673 additions and 315 deletions

150
Theme.cs Normal file
View File

@@ -0,0 +1,150 @@
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, 241, 241, 241);
public static Color Green = Color.YellowGreen;
public static Color Yellow = Color.Gold;
public static Color Red = Color.DarkOrange;
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.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;
}
}
}
}