<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2F2D%2FGraphics</id>
		<title>Csharp/CSharp Tutorial/2D/Graphics - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2F2D%2FGraphics"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/2D/Graphics&amp;action=history"/>
		<updated>2026-04-30T00:28:30Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/2D/Graphics&amp;diff=6362&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/2D/Graphics&amp;diff=6362&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/2D/Graphics&amp;diff=6363&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/2D/Graphics&amp;diff=6363&amp;oldid=prev"/>
				<updated>2010-05-26T12:18:50Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Create Graphics from Form object==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
   &lt;br /&gt;
class Scribble: Form&lt;br /&gt;
{&lt;br /&gt;
     bool  bTracking;&lt;br /&gt;
     Point ptLast;&lt;br /&gt;
   &lt;br /&gt;
     public static void Main()&lt;br /&gt;
     {&lt;br /&gt;
          Application.Run(new Scribble());&lt;br /&gt;
     }&lt;br /&gt;
     public Scribble()&lt;br /&gt;
     {&lt;br /&gt;
          Text = &amp;quot;Scribble&amp;quot;;&lt;br /&gt;
     }&lt;br /&gt;
     protected override void OnMouseDown(MouseEventArgs mea)&lt;br /&gt;
     {&lt;br /&gt;
          if (mea.Button != MouseButtons.Left)&lt;br /&gt;
               return;&lt;br /&gt;
   &lt;br /&gt;
          ptLast = new Point(mea.X, mea.Y);&lt;br /&gt;
          bTracking = true;&lt;br /&gt;
     }&lt;br /&gt;
     protected override void OnMouseMove(MouseEventArgs mea)&lt;br /&gt;
     {&lt;br /&gt;
          if (!bTracking)&lt;br /&gt;
               return;&lt;br /&gt;
   &lt;br /&gt;
          Point ptNew = new Point(mea.X, mea.Y);&lt;br /&gt;
          &lt;br /&gt;
          Graphics grfx = CreateGraphics();&lt;br /&gt;
          grfx.DrawLine(new Pen(ForeColor), ptLast, ptNew);&lt;br /&gt;
          grfx.Dispose();&lt;br /&gt;
   &lt;br /&gt;
          ptLast = ptNew;&lt;br /&gt;
     }&lt;br /&gt;
     protected override void OnMouseUp(MouseEventArgs mea)&lt;br /&gt;
     {&lt;br /&gt;
          bTracking = false;&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Double Buffering Example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
&lt;br /&gt;
  class Form1 : Form&lt;br /&gt;
  {&lt;br /&gt;
    public Form1()&lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
    protected override void OnPaint(PaintEventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
      Graphics displayGraphics = e.Graphics;&lt;br /&gt;
      Random r = new Random();&lt;br /&gt;
      Image i = new Bitmap(ClientRectangle.Width, ClientRectangle.Height);&lt;br /&gt;
      Graphics g = Graphics.FromImage(i);&lt;br /&gt;
      g.FillRectangle(Brushes.White, ClientRectangle);&lt;br /&gt;
      for (int x = 0; x &amp;lt; ClientRectangle.Width; x++)&lt;br /&gt;
      {&lt;br /&gt;
        for (int y = 0; y &amp;lt; ClientRectangle.Height; y += 10)&lt;br /&gt;
        {&lt;br /&gt;
          Color c = Color.FromArgb(r.Next(255), r.Next(255),r.Next(255));&lt;br /&gt;
          Pen p = new Pen(c, 1);&lt;br /&gt;
          g.DrawLine(p, new Point(0, 0), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(10, 10), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(20, 10), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(30, 10), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(40, 10), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(50, 10), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(60, 10), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(70, 10), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(80, 10), new Point(x, y));&lt;br /&gt;
          g.DrawLine(p, new Point(90, 10), new Point(x, y));&lt;br /&gt;
          p.Dispose();&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      displayGraphics.DrawImage(i, ClientRectangle);&lt;br /&gt;
      i.Dispose();&lt;br /&gt;
    }&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main()&lt;br /&gt;
    {&lt;br /&gt;
      Application.EnableVisualStyles();&lt;br /&gt;
      Application.Run(new Form1());&lt;br /&gt;
    }&lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Draw along with the Tab==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
public class Form1 : Form {&lt;br /&gt;
    protected override void OnPaint(PaintEventArgs e) {&lt;br /&gt;
    Graphics g = e.Graphics;&lt;br /&gt;
    g.FillRectangle(Brushes.White, this.ClientRectangle);&lt;br /&gt;
    Font f = new Font(&amp;quot;Times New Roman&amp;quot;, 12);&lt;br /&gt;
    Font bf = new Font(f, FontStyle.Bold);&lt;br /&gt;
    StringFormat sf = new StringFormat();&lt;br /&gt;
    float[] ts = { 10.0f, 70.0f, 100.0f, 90.0f };&lt;br /&gt;
    sf.SetTabStops(0.0f, ts);&lt;br /&gt;
    string s1 = &amp;quot;\tA\tAA\tAAA\tAAAA&amp;quot;;&lt;br /&gt;
    string s2 = &amp;quot;\tAAAA\tAAA\tAA\tA&amp;quot;;&lt;br /&gt;
    string s3 = &amp;quot;\tAAAAAAAA\tAAAAAAA\tAAAAAA\tAAAAA\n\tAAAA\tAAA\tAA\tAA&amp;quot;;&lt;br /&gt;
    g.DrawString(s1, bf, Brushes.Black, 20, 20, sf);&lt;br /&gt;
    g.DrawString(s2, f, Brushes.Blue, 20, 20 + bf.Height, sf);&lt;br /&gt;
    g.DrawString(s3, f, Brushes.Blue, 20,&lt;br /&gt;
                      20 + bf.Height + f.Height, sf);&lt;br /&gt;
    f.Dispose();&lt;br /&gt;
    bf.Dispose();&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        Application.Run(new Form1());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Draw String==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
class PaintHello&lt;br /&gt;
{&lt;br /&gt;
     public static void Main()&lt;br /&gt;
     {&lt;br /&gt;
          Form form      = new Form();&lt;br /&gt;
          form.Text      = &amp;quot;Paint Hello&amp;quot;;&lt;br /&gt;
          form.BackColor = Color.White;&lt;br /&gt;
          form.Paint    += new PaintEventHandler(MyPaintHandler);&lt;br /&gt;
   &lt;br /&gt;
          Application.Run(form);&lt;br /&gt;
     }&lt;br /&gt;
     static void MyPaintHandler(object objSender, PaintEventArgs pea)&lt;br /&gt;
     {&lt;br /&gt;
          Form     form = (Form)objSender;&lt;br /&gt;
          Graphics graphics = pea.Graphics;&lt;br /&gt;
   &lt;br /&gt;
          graphics.DrawString(&amp;quot;Hello, world!&amp;quot;, form.Font, Brushes.Black, 0, 0);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphics.DrawIcon==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing.Drawing2D;&lt;br /&gt;
public class Form1 : System.Windows.Forms.Form {&lt;br /&gt;
    private void Form1_Paint(object sender,&lt;br /&gt;
        System.Windows.Forms.PaintEventArgs p) {&lt;br /&gt;
        Graphics g = p.Graphics;&lt;br /&gt;
    }&lt;br /&gt;
    private void createManually() {&lt;br /&gt;
        Graphics g;&lt;br /&gt;
        g = this.CreateGraphics();&lt;br /&gt;
    }&lt;br /&gt;
    private void createFromFile() {&lt;br /&gt;
        Graphics g;&lt;br /&gt;
        Bitmap b;&lt;br /&gt;
        b = new Bitmap(&amp;quot;C:\E.bmp&amp;quot;);&lt;br /&gt;
        g = Graphics.FromImage(b);&lt;br /&gt;
    }&lt;br /&gt;
    private void drawLine() {&lt;br /&gt;
        Graphics g;&lt;br /&gt;
        g = this.CreateGraphics();&lt;br /&gt;
        Icon i = new Icon(@&amp;quot;C:\Desktop.ico&amp;quot;);&lt;br /&gt;
        g.DrawIcon(i, 150, 15);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphics.DrawImage==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
public class Form1 : Form {&lt;br /&gt;
    protected override void OnPaint(PaintEventArgs e) {&lt;br /&gt;
    Graphics g = e.Graphics;&lt;br /&gt;
    Bitmap bmp = new Bitmap(&amp;quot;rama.jpg&amp;quot;);&lt;br /&gt;
    Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);&lt;br /&gt;
    g.DrawImage(bmp, r, r, GraphicsUnit.Pixel);&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        Application.Run(new Form1());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphics.DrawLine==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Drawing.Printing;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
   &lt;br /&gt;
class PrintableForm: Form&lt;br /&gt;
{&lt;br /&gt;
     public static void Main()&lt;br /&gt;
     {&lt;br /&gt;
          Application.Run(new PrintableForm());&lt;br /&gt;
     }&lt;br /&gt;
     public PrintableForm()&lt;br /&gt;
     {&lt;br /&gt;
          ResizeRedraw = true;&lt;br /&gt;
     }&lt;br /&gt;
     protected override void OnPaint(PaintEventArgs pea)&lt;br /&gt;
     {&lt;br /&gt;
          DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);&lt;br /&gt;
     }&lt;br /&gt;
     protected void DoPage(Graphics grfx, Color clr, int cx, int cy)&lt;br /&gt;
     {&lt;br /&gt;
          Pen pen = new Pen(clr);&lt;br /&gt;
   &lt;br /&gt;
          grfx.DrawLine(pen, 0,      0, cx - 1, cy - 1);&lt;br /&gt;
          grfx.DrawLine(pen, cx - 1, 0, 0,      cy - 1);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Graphics.DrawLines==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Drawing.Printing;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
   &lt;br /&gt;
class PrintableForm: Form&lt;br /&gt;
{&lt;br /&gt;
     public static void Main()&lt;br /&gt;
     {&lt;br /&gt;
          Application.Run(new PrintableForm());&lt;br /&gt;
     }&lt;br /&gt;
     public PrintableForm()&lt;br /&gt;
     {&lt;br /&gt;
          ResizeRedraw = true;&lt;br /&gt;
     }&lt;br /&gt;
     protected override void OnPaint(PaintEventArgs pea)&lt;br /&gt;
     {&lt;br /&gt;
          DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);&lt;br /&gt;
     }&lt;br /&gt;
     protected void DoPage(Graphics grfx, Color clr, int cx, int cy)&lt;br /&gt;
     {&lt;br /&gt;
          Point[] apt = {new Point(0,      0),&lt;br /&gt;
                         new Point(cx - 1, 0),&lt;br /&gt;
                         new Point(cx - 1, cy - 1),&lt;br /&gt;
                         new Point(0,      cy - 1),&lt;br /&gt;
                         new Point(0,      0)};&lt;br /&gt;
   &lt;br /&gt;
          grfx.DrawLines(new Pen(clr), apt);&lt;br /&gt;
     }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==No Double Buffering Example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
  class Form1 : Form&lt;br /&gt;
  {&lt;br /&gt;
    public Form1()&lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
    protected override void OnPaint(PaintEventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
      Graphics g = e.Graphics;&lt;br /&gt;
      Random r = new Random();&lt;br /&gt;
      g.FillRectangle(Brushes.White, ClientRectangle);&lt;br /&gt;
      for (int x = 0; x &amp;lt; ClientRectangle.Width; x++)&lt;br /&gt;
      {&lt;br /&gt;
        for (int y = 0; y &amp;lt; ClientRectangle.Height; y += 10)&lt;br /&gt;
        {&lt;br /&gt;
          Color c = Color.FromArgb(r.Next(255), r.Next(255),r.Next(255));&lt;br /&gt;
          using (Pen p = new Pen(c, 1))&lt;br /&gt;
          {&lt;br /&gt;
            g.DrawLine(p, new Point(0, 0), new Point(x, y));&lt;br /&gt;
            g.DrawLine(p, new Point(10, 40), new Point(x, y));&lt;br /&gt;
            g.DrawLine(p, new Point(20, 30), new Point(x, y));&lt;br /&gt;
            g.DrawLine(p, new Point(30, 20), new Point(x, y));&lt;br /&gt;
            g.DrawLine(p, new Point(40, 10), new Point(x, y));&lt;br /&gt;
            g.DrawLine(p, new Point(50, 10), new Point(x, y));                                                            &lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main()&lt;br /&gt;
    {&lt;br /&gt;
      Application.EnableVisualStyles();&lt;br /&gt;
      Application.Run(new Form1());&lt;br /&gt;
    }&lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set SmoothingMode==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Drawing.Drawing2D;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
public class Form1 : Form {&lt;br /&gt;
    protected override void OnPaint(PaintEventArgs e) {&lt;br /&gt;
    Graphics g = e.Graphics;&lt;br /&gt;
    g.SmoothingMode = SmoothingMode.AntiAlias;&lt;br /&gt;
    g.FillRectangle(Brushes.White, this.ClientRectangle);&lt;br /&gt;
    Pen p = new Pen(Color.Black, 10);&lt;br /&gt;
    p.StartCap = LineCap.Round;&lt;br /&gt;
    p.EndCap = LineCap.ArrowAnchor;&lt;br /&gt;
    g.DrawLine(p, 30, 30, 80, 30);&lt;br /&gt;
    p.Dispose();&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        Application.Run(new Form1());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TranslateTransform a Graphics==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System.Collections.Generic;&lt;br /&gt;
using System.ruponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
public class Form1 : Form {&lt;br /&gt;
    protected override void OnPaint(PaintEventArgs e) {&lt;br /&gt;
    Graphics g = e.Graphics;&lt;br /&gt;
    g.FillRectangle(Brushes.White, this.ClientRectangle);&lt;br /&gt;
    Font f = new Font(&amp;quot;Times New Roman&amp;quot;, 24);&lt;br /&gt;
    g.DrawString(&amp;quot;Translation&amp;quot;, f, Brushes.Black, 0, 0);&lt;br /&gt;
    g.TranslateTransform(150, 75);&lt;br /&gt;
    g.DrawString(&amp;quot;Translation&amp;quot;, f, Brushes.Black, 0, 0);&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        Application.Run(new Form1());&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>