Exportieren (0) Drucken
Alle erweitern

Glyph-Klasse

Aktualisiert: November 2007

Stellt eine einzelne von einem Adorner verwaltete Benutzeroberflächenentität dar.

Namespace:  System.Windows.Forms.Design.Behavior
Assembly:  System.Design (in System.Design.dll)

public abstract class Glyph
public abstract class Glyph
public abstract class Glyph

Glyph wird lediglich zum Zeichnen und zur Überprüfung auf Treffer verwendet. Ein Glyph verfügt nicht über ein Fensterhandle (HWND), da es auf dem Gestaltungsfenstersteuerelement des BehaviorService wiedergegeben wird. Jedem Glyph kann ein Behavior zugeordnet sein. Ein erfolgreich auf Treffer überprüftes Glyph kann ein neues oder anderes Behavior auf dem Verhaltensstapel des BehaviorService abzulegen.

Weitere Informationen finden Sie unter Übersicht über den Behavior-Dienst.

Im folgenden Beispiel wird veranschaulicht, wie Sie eine eigene Klasse auf der Grundlage von Glyph erstellen können, der Behavior zugeordnet ist. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die BehaviorService-Klasse.

class MyGlyph : Glyph
{
    Control control;
    BehaviorService behaviorSvc;

    public MyGlyph(BehaviorService behaviorSvc, Control control) : 
        base(new MyBehavior())
    {
        this.behaviorSvc = behaviorSvc;
        this.control = control;
    }

    public override Rectangle Bounds
    {
        get
        {
            // Create a glyph that is 10x10 and sitting
            // in the middle of the control.  Glyph coordinates
            // are in adorner window coordinates, so we must map
            // using the behavior service.
            Point edge = behaviorSvc.ControlToAdornerWindow(control);
            Size size = control.Size;
            Point center = new Point(edge.X + (size.Width / 2), 
                edge.Y + (size.Height / 2));

            Rectangle bounds = new Rectangle(
                center.X - 5,
                center.Y - 5,
                10,
                10);

            return bounds;
        }
    }

    public override Cursor GetHitTest(Point p)
    {
        // GetHitTest is called to see if the point is
        // within this glyph.  This gives us a chance to decide
        // what cursor to show.  Returning null from here means
        // the mouse pointer is not currently inside of the glyph.
        // Returning a valid cursor here indicates the pointer is
        // inside the glyph, and also enables our Behavior property
        // as the active behavior.
        if (Bounds.Contains(p))
        {
            return Cursors.Hand;
        }

        return null;
    }

    public override void Paint(PaintEventArgs pe)
    {
        // Draw our glyph. It is simply a blue ellipse.
        pe.Graphics.FillEllipse(Brushes.Blue, Bounds);
    }

    // By providing our own behavior we can do something interesting
    // when the user clicks or manipulates our glyph.
    class MyBehavior : Behavior
    {
        public override bool OnMouseUp(Glyph g, MouseButtons button)
        {
            MessageBox.Show("Hey, you clicked the mouse here");
            return true; // indicating we processed this event.
        }
    }
}


Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft