GDI+提供的反走样技术
 
InBlock.gif using System;
InBlock.gif using System.Drawing;
InBlock.gif using System.Collections;
InBlock.gif using System.ComponentModel;
InBlock.gif using System.Windows.Forms;
InBlock.gif using System.Data;
InBlock.gif using System.Drawing.Drawing2D;
InBlock.gif
InBlock.gif namespace 反走样
InBlock.gif{
InBlock.gif        /** <summary>
InBlock.gif         /// Form1 的摘要说明。
InBlock.gif         /// </summary>
InBlock.gif         public class Form1 : System.Windows.Forms.Form
InBlock.gif        {
InBlock.gif                /** <summary>
InBlock.gif                 /// 必需的设计器变量。
InBlock.gif                 /// </summary>
InBlock.gif                 private System.ComponentModel.Container components = null;
InBlock.gif
InBlock.gif                 public Form1()
InBlock.gif                {
InBlock.gif                         //
InBlock.gif                         // Windows 窗体设计器支持所必需的
InBlock.gif                         //
InBlock.gif                        InitializeComponent();
InBlock.gif
InBlock.gif                         //
InBlock.gif                         // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
InBlock.gif                         //
InBlock.gif                }
InBlock.gif
InBlock.gif                /** <summary>
InBlock.gif                 /// 清理所有正在使用的资源。
InBlock.gif                 /// </summary>
InBlock.gif                 protected override void Dispose( bool disposing )
InBlock.gif                {
InBlock.gif                         if( disposing )
InBlock.gif                        {
InBlock.gif                                 if (components != null)    
InBlock.gif                                {
InBlock.gif                                        components.Dispose();
InBlock.gif                                }
InBlock.gif                        }
InBlock.gif                         base.Dispose( disposing );
InBlock.gif                }
InBlock.gif
InBlock.gifWindows Form Designer generated code #region Windows Form Designer generated code
InBlock.gif                /** <summary>
InBlock.gif                 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
InBlock.gif                 /// 此方法的内容。
InBlock.gif                 /// </summary>
InBlock.gif                 private void InitializeComponent()
InBlock.gif                {
InBlock.gif                         //    
InBlock.gif                         // Form1
InBlock.gif                         //    
InBlock.gif                         this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
InBlock.gif                         this.ClientSize = new System.Drawing.Size(768, 478);
InBlock.gif                         this.Name = "Form1";
InBlock.gif                         this.Text = "Form1";
InBlock.gif
InBlock.gif                }
InBlock.gif                #endregion
InBlock.gif
InBlock.gif                /** <summary>
InBlock.gif                 /// 应用程序的主入口点。
InBlock.gif                 /// </summary>
InBlock.gif                [STAThread]
InBlock.gif                 static void Main()    
InBlock.gif                {
InBlock.gif                        Application.Run( new Form1());
InBlock.gif                }
InBlock.gif
InBlock.gif                 protected override void OnPaint(PaintEventArgs e)
InBlock.gif                {
InBlock.gif                        Graphics    g= e.Graphics;
InBlock.gif                         //放大8倍
InBlock.gif                        g.ScaleTransform(8, 8);
InBlock.gif                         //绘制没有反走样效果的图形和文字
InBlock.gif                        Draw(g, "没有反走样");
InBlock.gif                         //设置反走样
InBlock.gif                        g.SmoothingMode = SmoothingMode.AntiAlias;
InBlock.gif                         //g.SmoothingMode = SmoothingMode.HighQuality;
InBlock.gif                         //向右平移40,绘制有反走样效果的图形和文字
InBlock.gif                        g.TranslateTransform(40, 0);
InBlock.gif                        Draw(g, "反走样");
InBlock.gif                }
InBlock.gif
InBlock.gif                 private void Draw(Graphics g, string s)
InBlock.gif                {
InBlock.gif                         //绘一条直线段、一个椭圆和一个字符串
InBlock.gif                        g.DrawLine(Pens.Gray, 10, 10, 40, 20);
InBlock.gif                        g.DrawEllipse(Pens.Gray, 20, 20, 30, 10);
InBlock.gif                         //string s= "反走样测试";
InBlock.gif                        Font font= new Font( "宋体", 5);
InBlock.gif                        SolidBrush brush= new SolidBrush(Color.Gray);
InBlock.gif                        g.DrawString(s, font, brush, 10, 40);
InBlock.gif                }
InBlock.gif        }
InBlock.gif}