ساخت یه تولبار زیبا
حالا یه کلاس با نام Myrender بسازین
کل مت موجود در اونو پاک کنین و متن زور رو توش بنویسین :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;//*
using System.Drawing.Drawing2D;//*
namespace WindowsFormsApplication3
{
class MyRender : System.Windows.Forms.ToolStripRenderer
{
protected override void OnRenderToolStripBackground(System.Windows.Forms.ToolStripRenderEventArgs e)
{
base.OnRenderToolStripBackground(e);
Graphics g = e.Graphics;
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.ToolStrip.Bounds.Width, e.ToolStrip.Bounds.Height), Color.White , Color.Silver , 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.ToolStrip.Bounds.Width, e.ToolStrip.Bounds.Height));
}
}
protected override void OnRenderButtonBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e)
{
base.OnRenderButtonBackground(e);
Graphics g = e.Graphics;
if (e.Item.Selected)
{
if (e.Item.Pressed)
{
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.Red, Color.White, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));
}
}
else
{
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.LightSkyBlue, Color.SkyBlue, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));
}
}
}
}
protected override void OnRenderMenuItemBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e)
{
base.OnRenderMenuItemBackground(e);
Graphics g = e.Graphics;//
if (e.Item.Selected)
{
if (e.Item.Pressed)
{
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.White, Color.Silver, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));//
}
}
else
{
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.Silver, Color.Gray, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));//
}
}
}
}
protected override void OnRenderSplitButtonBackground(System.Windows.Forms.ToolStripItemRenderEventArgs e)
{
base.OnRenderSplitButtonBackground(e);
Graphics g = e.Graphics;//
if (e.Item.Selected)
{
if (e.Item.Pressed)
{
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.White, Color.Silver, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));//
}
}
else
{
using (LinearGradientBrush b = new LinearGradientBrush(new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height), Color.LightSkyBlue, Color.SkyBlue, 90))
{
g.FillRectangle(b, new Rectangle(0, 0, e.Item.Bounds.Width, e.Item.Bounds.Height));
}
}
}
}
protected override void OnRenderSeparator(System.Windows.Forms.ToolStripSeparatorRenderEventArgs e)
{
base.OnRenderSeparator(e);
Graphics g = e.Graphics;//
int a = e.Item.Bounds.Width - 5;//
g.FillRectangle(Brushes.Black, 0, 0,a ,e.Item.Bounds.Height - 4);//
}
}
}
حالا تو فرم لود کد های زیرو اضافه کنین
ts1.RenderMode = ToolStripRenderMode.ManagerRenderMode;
ToolStripManager.Renderer = new MyRender();
در ضمن یادتون باشه که نام toolstrip رو ts1 در نضر بگیرین
شما میتونین این شکل ذو به منو ها هم بدین
برای این کار یه کنترل منو به برنامه اضافه کنین و کد زیر رو تو فرم لود بنویسید
menuStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode;//
این کا رو با یه استاتوس بار هم میشه انجام داد:
statusStrip1.RenderMode = ToolStripRenderMode.ManagerRenderMode;//