Csharp/C Sharp by API/System.Drawing.Drawing2D/CustomLineCap — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 12:10, 26 мая 2010

CustomLineCap.BaseInset

 
/*
GDI+ Programming in C# and VB .NET
by Nick Symmonds
Publisher: Apress
ISBN: 159059035X
*/
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
namespace CustomCap_c
{
    public class CustomCap : System.Windows.Forms.Form
    {
        public CustomCap()
        {
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Name = "CustomCap";
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
      this.Text = "CustomCap";
      this.Load += new System.EventHandler(this.CustomCap_Load);
    }
        static void Main() 
        {
            Application.Run(new CustomCap());
        }
    private void CustomCap_Load(object sender, System.EventArgs e)
    {
    }
    protected override void OnPaint ( PaintEventArgs e )
    {
      Graphics G = e.Graphics;
      Pen P = new Pen(Color.Blue, 1 );
      Point[] Pts = { new Point( 10, 10 ),
                      new Point( 15, 10 ),
                      new Point( 20, 15 ),
                      new Point( 20, 20 ),
                      new Point( 15, 25 ),
                      new Point( 10, 25 ),
                      new Point( 5, 20 ),
                      new Point( 5, 15 ),
                      new Point( 10, 10 )};
      GraphicsPath Path = new GraphicsPath();
      Path.AddLines (Pts);
      G.SmoothingMode=SmoothingMode.AntiAlias;
      CustomLineCap Lc = new CustomLineCap( null, Path );
      Lc.BaseInset=0;
      Lc.WidthScale=1;
      Lc.StrokeJoin=LineJoin.Miter;
      P.CustomEndCap = Lc;
      P.CustomStartCap=Lc;
      G.DrawLine ( P, 50, 150, 200, 150 );
      G.DrawLine ( P, 150, 50, 150, 200 );
      Lc.Dispose();
      Path.Dispose();
      P.Dispose();
    }
    }
}