Csharp/C Sharp/2D Graphics/Region Clip — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:42, 26 мая 2010
Clip many shapes
using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
public class Form1 : Form
{
private System.Windows.Forms.CheckBox chkClipping;
public Form1() {
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
Invalidate();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
GraphicsPath path = new GraphicsPath();
Region clippingRegion = new Region(path);
if (chkClipping.Checked) e.Graphics.Clip = clippingRegion;
e.Graphics.ResetClip();
path = new GraphicsPath();
path.AddString("www.nfex.ru", new FontFamily("Verdana"), 0, 70, new Point(10, 130), new StringFormat());
e.Graphics.DrawPath(Pens.Blue, path);
clippingRegion = new Region(path);
if (chkClipping.Checked) e.Graphics.Clip = clippingRegion;
for (int i = 0; i < 40; i++)
{
e.Graphics.DrawEllipse(Pens.Red, 180 - i*3, 180 - i*3, i*6, i*6);
}
clippingRegion.Dispose();
path.Dispose();
}
private void InitializeComponent()
{
this.chkClipping = new System.Windows.Forms.CheckBox();
this.SuspendLayout();
//
// chkClipping
//
this.chkClipping.AutoSize = true;
this.chkClipping.Checked = true;
this.chkClipping.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkClipping.Location = new System.Drawing.Point(12, 300);
this.chkClipping.Name = "chkClipping";
this.chkClipping.Size = new System.Drawing.Size(80, 17);
this.chkClipping.TabIndex = 0;
this.chkClipping.Text = "Use Clipping";
this.chkClipping.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 329);
this.Controls.Add(this.chkClipping);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "Form1";
this.Text = "Clipping";
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
this.ResumeLayout(false);
this.PerformLayout();
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}
Text region clips shape
using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
public class Form1 : Form
{
private System.Windows.Forms.CheckBox chkClipping;
public Form1() {
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
Invalidate();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
Rectangle rectangle = new Rectangle(10, 10, 250, 50);
GraphicsPath path = new GraphicsPath();
path.AddEllipse(rectangle);
e.Graphics.DrawPath(Pens.Red, path);
Region clippingRegion = new Region(path);
if (chkClipping.Checked) e.Graphics.Clip = clippingRegion;
e.Graphics.DrawString("www.nfex.ru",new Font("Verdana", 36, FontStyle.Bold), Brushes.Black, 10, 10);
clippingRegion.Dispose();
path.Dispose();
}
private void InitializeComponent()
{
this.chkClipping = new System.Windows.Forms.CheckBox();
this.SuspendLayout();
//
// chkClipping
//
this.chkClipping.AutoSize = true;
this.chkClipping.Checked = true;
this.chkClipping.CheckState = System.Windows.Forms.CheckState.Checked;
this.chkClipping.Location = new System.Drawing.Point(12, 300);
this.chkClipping.Name = "chkClipping";
this.chkClipping.Size = new System.Drawing.Size(80, 17);
this.chkClipping.TabIndex = 0;
this.chkClipping.Text = "Use Clipping";
this.chkClipping.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(292, 329);
this.Controls.Add(this.chkClipping);
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "Form1";
this.Text = "Clipping";
this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
this.ResumeLayout(false);
this.PerformLayout();
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
}