废话不多说了,直接给大家上代码了,具体代码如下所示:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Drawing.Text; using System.Drawing.Drawing2D; using System.Data; using System.Text; using System.Windows.Forms; public partial class WordArt : UserControl //这是一个艺术字的控件 { //文本属性 private string _text = "WordArt" ; public string Caption { get { return _text; } set { _text = value; } } //字体以及大小 private Font _WordArtFont = new Font( "宋体" ,15); public Font WordArtFont { get { return _WordArtFont; } set { _WordArtFont = value; } } //颜色 private Color _WordArtForeColor = Color.BlueViolet; public Color WordArtForeColor { get { return _WordArtForeColor; } set { _WordArtForeColor = value; } } //阴影的颜色 private Color _WordArtBackColor = Color.Gray; public Color WordArtBackColor { set { _WordArtBackColor = value; } get { return _WordArtBackColor; } } //文本输出质量:呈现模式和平滑效果 private TextRenderingHint _TextRenderingHint = TextRenderingHint.ClearTypeGridFit; public TextRenderingHint WordArtTextRenderingHint { get { return _TextRenderingHint; } set { _TextRenderingHint = value; } } public SmoothingMode _SmoothingMode = SmoothingMode.AntiAlias; public SmoothingMode WordArtSmoothingMode { get { return _SmoothingMode; } set { _SmoothingMode = value; } } public WordArt() { InitializeComponent(); } //艺术字的形式:阴影,浮雕…… private WordArtEffectStyle _WordArtEffect=WordArtEffectStyle.projection; //投影为默认形式; public WordArtEffectStyle WordArtEffect { get { return _WordArtEffect; } set { _WordArtEffect = value; } } protected override void OnPaint(PaintEventArgs e) { base .OnPaint(e); Graphics g = this .CreateGraphics(); Brush backBrush= new SolidBrush( this .WordArtBackColor); Brush foreBrush= new SolidBrush( this .WordArtForeColor); SizeF size = g.MeasureString( this .Caption, this .WordArtFont); Single posX = ( this .Width - Convert.ToInt16(size.Width)) / 2; Single posY = ( this .Height - Convert.ToInt16(size.Height)) / 2; switch ( this .WordArtEffect) { case WordArtEffectStyle.projection: //投影效果 //设置文本输出质量 g.TextRenderingHint = this .WordArtTextRenderingHint; g.SmoothingMode = this .WordArtSmoothingMode; Matrix matrix = new Matrix(); //投射 matrix.Shear(-1.5f, 0.0f); //缩放 matrix.Scale(1, 0.5f); //平移 matrix.Translate(120, 75); //对绘图平面坐标实施变换 g.Transform = matrix; |
代码到此结束了,希望对大家有所帮助!