BehaviorService Classe

Définition

Gère l'interface utilisateur dans le concepteur. Cette classe ne peut pas être héritée.

C#
public sealed class BehaviorService : IDisposable
Héritage
BehaviorService
Implémente

Exemples

L’exemple de code suivant montre comment créer votre propre Behavior classe basée qui répond aux clics de l’utilisateur.

C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Text;
using System.Windows.Forms.Design;
using System.Windows.Forms.Design.Behavior;

namespace BehaviorServiceSample
{
    class Form1 : Form
    {
        private UserControl1 userControl;

        public Form1()
        {
            InitializeComponent();
        }

        private System.ComponentModel.IContainer components = null;

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void InitializeComponent()
        {
            this.userControl = new BehaviorServiceSample.UserControl1();
            this.SuspendLayout();

            this.userControl.Location = new System.Drawing.Point(12, 13);
            this.userControl.Name = "userControl";
            this.userControl.Size = new System.Drawing.Size(143, 110);
            this.userControl.TabIndex = 0;
            
            this.ClientSize = new System.Drawing.Size(184, 153);
            this.Controls.Add(this.userControl);
            this.Name = "Form1";
            this.Text = "Form1";
            this.ResumeLayout(false);
        }

        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }
    }

    [Designer(typeof(MyDesigner))]
    public class UserControl1 : UserControl
    {
        private System.ComponentModel.IContainer components = null;

        public UserControl1()
        {
            InitializeComponent();
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void InitializeComponent()
        {
            this.Name = "UserControl1";
            this.Size = new System.Drawing.Size(170, 156);
        }
    }

    class MyDesigner : ControlDesigner
    {
        private Adorner myAdorner;

        protected override void Dispose(bool disposing)
        {
            if (disposing && myAdorner != null)
            {
                BehaviorService b = BehaviorService;
                if (b != null)
                {
                    b.Adorners.Remove(myAdorner);
                }
            }
        }

        public override void Initialize(IComponent component)
        {
            base.Initialize(component);

            // Add the custom set of glyphs using the BehaviorService. 
            // Glyphs live on adornders.
            myAdorner = new Adorner();
            BehaviorService.Adorners.Add(myAdorner);
            myAdorner.Glyphs.Add(new MyGlyph(BehaviorService, Control));
        }
    }

    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.
            }
        }
    }
}

Remarques

Lorsque le BehaviorService est créé, il ajoute une fenêtre transparente sur le cadre du concepteur. Le BehaviorService peut ensuite utiliser cette fenêtre pour afficher les éléments de l’interface utilisateur, appelés Glyph objets, ainsi que pour intercepter tous les messages de souris. De cette façon, le peut contrôler le comportement du BehaviorService concepteur.

La BehaviorService classe prend en charge une pile de comportements sur laquelle Behavior les objets peuvent être envoyés. Lorsqu’un message est intercepté via la fenêtre transparente, le BehaviorService peut envoyer le message au Behavior en haut de la pile. Cela permet d’activer différents modes d’interface utilisateur en fonction de l’objet actuellement envoyé Behavior. BehaviorService est utilisé pour afficher tous les objets, tels que les Glyph bordures de sélection, les poignées de dimensionnement et les balises actives. Le BehaviorService contrôle également de nombreux comportements au moment de la conception, tels que l’utilisation de lignes d’alignement, le glissement et la sélection.

Pour plus d’informations, consultez Vue d’ensemble du service comportement.

Propriétés

Adorners

Obtient BehaviorServiceAdornerCollection.

AdornerWindowGraphics

Obtient le Graphics de la fenêtre de dispositif d'ornement.

CurrentBehavior

Obtient le Behavior placé au sommet de la pile de comportements sans le supprimer.

Méthodes

AdornerWindowPointToScreen(Point)

Convertit un Point dans la fenêtre de dispositif d'ornement en coordonnées d'écran.

AdornerWindowToScreen()

Obtient l'emplacement de la fenêtre de dispositif d'ornement en coordonnées d'écran.

ControlRectInAdornerWindow(Control)

Retourne le Rectangle englobant d'un Control.

ControlToAdornerWindow(Control)

Retourne l'emplacement d'un Control converti en coordonnées de fenêtre de dispositif d'ornement.

Dispose()

Libère toutes les ressources utilisées par BehaviorService.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetNextBehavior(Behavior)

Retourne immédiatement le Behavior après le Behavior donné dans la pile de comportements.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Invalidate()

Invalide la fenêtre de dispositif d'ornement du BehaviorService.

Invalidate(Rectangle)

Invalide, dans la fenêtre de dispositif d'ornement, la zone spécifiée du BehaviorService.

Invalidate(Region)

Invalide, dans la fenêtre de dispositif d'ornement, la zone spécifiée du BehaviorService.

MapAdornerWindowPoint(IntPtr, Point)

Convertit un point exprimé dans le système de coordonnées d'un handle en coordonnées de fenêtre de dispositif d'ornement.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
PopBehavior(Behavior)

Supprime et retourne le Behavior placé au sommet de la pile.

PushBehavior(Behavior)

Applique un push à un Behavior sur la pile de comportements.

PushCaptureBehavior(Behavior)

Applique un push à un Behavior sur la pile de comportements et assigne une capture de souris au comportement.

ScreenToAdornerWindow(Point)

Convertit un point exprimé en coordonnées d'écran en coordonnées de la fenêtre de dispositif d'ornement du BehaviorService.

SyncSelection()

Synchronise tous les glyphes de sélection.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Événements

BeginDrag

Se produit lorsque le BehaviorService initie une opération de glisser-déplacer.

EndDrag

Se produit lorsque le BehaviorService termine une opération de glisser.

Synchronize

Se produit lorsque la sélection actuelle doit être actualisée.

S’applique à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Voir aussi