FontMenuForm 基类见:http://blog.youkuaiyun.com/u013384702/article/details/17884617
using System;
using System.Drawing;
using System.Windows.Forms;
namespace CsStudy
{
class EmbossedText : FontMenuForm
{
int iOffset = 2;
public new static void Main()
{
Application.Run(new EmbossedText());
}
public EmbossedText()
{
Text = "Embossed Text";
Width *= 2;
Menu.MenuItems.Add("&Toggle!", new EventHandler(MenuToggleOnClick));
strText = "猪爷爷";
font = new Font("Times New Roman", 108);
}
void MenuToggleOnClick(object obj, EventArgs e)
{
iOffset = -iOffset;
Text = (iOffset > 0) ? "Embossed Text" : "Engraved Text";
Invalidate();
}
protected override void DoPage(System.Drawing.Graphics grph, System.Drawing.Color clr, int cx, int cy)
{
SizeF sizef = grph.MeasureString(strText, font);
float x = (cx - sizef.Width) / 2;
float y = (cy - sizef.Height) / 2;
grph.Clear(Color.White);//以指定颜色来填充背景
grph.DrawString(strText, font, Brushes.Gray, x, y);
grph.DrawString(strText, font, Brushes.White, x - iOffset, y - iOffset);
}
}
}
效果图:
点Toggle前
点Toggle后: