/*
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.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace CustomCap_c
{
///
/// Summary description for CustomCap.
///
public class CustomCap : System.Windows.Forms.Form
{
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
public CustomCap()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
//
// 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);
}
#endregion
///
/// The main entry point for the application.
///
[STAThread]
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();
}
}
}