Region.IsVisible : Region « 2D « C# / CSharp Tutorial






using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

using System.Drawing.Drawing2D;

public class Form1 : System.Windows.Forms.Form {
    private System.Windows.Forms.Label label1;
    GraphicsPath gP;
    string mes = "Move to the big I!";
    FontFamily fF = new FontFamily("Times new roman");
    public Form1() {
        this.label1 = new System.Windows.Forms.Label();
        this.SuspendLayout();
        this.label1.Location = new System.Drawing.Point(88, 16);
        this.label1.Size = new System.Drawing.Size(160, 23);
        this.label1.Text = "label1";
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(292, 109);
        this.Controls.AddRange(new System.Windows.Forms.Control[] { this.label1 });
        this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
        this.ResumeLayout(false);
        Graphics g = this.CreateGraphics();
        label1.Text = mes;
        string s = "I";
        int fSt = (int)FontStyle.Regular;
        Point xy = new Point(50, 10);
        StringFormat sFr = StringFormat.GenericDefault;
        gP = new GraphicsPath();
        gP.AddString(s, fF, fSt, 50, xy, sFr);
    }
    [STAThread]
    static void Main() {
        Application.Run(new Form1());
    }

    protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) {
        Graphics g = this.CreateGraphics();
        g.DrawPath(Pens.Black, gP);  // draw the path to the surface
        g.Dispose();
    }

    private void Form1_MouseMove(object sender, MouseEventArgs e) {
        Region reg = new Region(gP);
        if (reg.IsVisible(new Point(e.X, e.Y)))
            mes = "in";
        else
            mes = "Move to the big I!";

    }
}








27.11.Region
27.11.1.Region.IsVisible
27.11.2.Create an irregular Region add a circle to the region
27.11.3.Create a Region whose boundary is the above GraphicsPath
27.11.4.Create a Region object, cut a rectangular hole in it, and fill it