Leer en inglés

Compartir a través de


BehaviorService Clase

Definición

Administra la interfaz de usuario en el diseñador. Esta clase no puede heredarse.

C#
public sealed class BehaviorService : IDisposable
Herencia
BehaviorService
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear su propia Behavior clase basada que responda a los clics del usuario.

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

Comentarios

BehaviorService Cuando se crea , agrega una ventana transparente sobre el marco del diseñador. A BehaviorService continuación, puede usar esta ventana para representar elementos de la interfaz de usuario, denominados Glyph objetos, así como capturar todos los mensajes del mouse. De este modo, puede controlar el comportamiento del BehaviorService diseñador.

La BehaviorService clase admite una pila de comportamiento en la que Behavior se pueden insertar objetos. Cuando se intercepta un mensaje a través de la ventana transparente, BehaviorService puede enviar el mensaje a la Behavior parte superior de la pila. Esto permite diferentes modos de interfaz de usuario en función del objeto insertado Behavioractualmente. BehaviorService se usa para representar todos los Glyph objetos, como los bordes de selección, los controladores de tamaño y las etiquetas inteligentes. También BehaviorService controla muchos comportamientos en tiempo de diseño, como el uso de líneas de ajuste, arrastrar y seleccionar.

Para obtener más información, consulte Información general sobre el servicio de comportamiento.

Propiedades

Adorners

Obtiene la estructura BehaviorServiceAdornerCollection.

AdornerWindowGraphics

Obtiene Graphics para la ventana de adorno.

CurrentBehavior

Obtiene el Behavior en la parte superior de la pila de comportamientos sin quitarlo.

Métodos

AdornerWindowPointToScreen(Point)

Convierte un Point de la ventana de adorno en coordenadas de pantalla.

AdornerWindowToScreen()

Obtiene la ubicación de la ventana de adorno en coordenadas de pantalla.

ControlRectInAdornerWindow(Control)

Devuelve el Rectangle delimitador de un Control.

ControlToAdornerWindow(Control)

Devuelve la ubicación de un Control convertida en las coordenadas de la ventana de adorno.

Dispose()

Libera todos los recursos que usa BehaviorService.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetNextBehavior(Behavior)

Devuelve el Behavior situado inmediatamente detrás del Behavior en la pila de comportamientos.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Invalidate()

Invalida la ventana de adorno de BehaviorService.

Invalidate(Rectangle)

Invalida, dentro de la ventana de adorno, el área especificada de BehaviorService.

Invalidate(Region)

Invalida, dentro de la ventana de adorno, el área especificada de BehaviorService.

MapAdornerWindowPoint(IntPtr, Point)

Convierte un punto del sistema de coordenadas de un identificador en las coordenadas de la ventana de adorno.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
PopBehavior(Behavior)

Quita y devuelve el objeto Behavior situado al principio de la pila.

PushBehavior(Behavior)

Inserta un Behavior en la pila de comportamientos.

PushCaptureBehavior(Behavior)

Inserta un Behavior en la pila de comportamientos y asigna la captura del mouse al comportamiento.

ScreenToAdornerWindow(Point)

Convierte un punto en coordenadas de pantalla en las coordenadas de la ventana de adorno de BehaviorService.

SyncSelection()

Sincroniza todos los glifos de selección.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

BeginDrag

Se produce cuando BehaviorService inicia una operación de arrastrar y colocar.

EndDrag

Se produce cuando BehaviorService finaliza una operación de arrastre.

Synchronize

Se produce cuando se debe actualizar la selección actual.

Se aplica a

Producto Versiones
.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

Consulte también