AddRule (Clase)

Representa una regla que se llama cuando un objeto se agrega al modelo.

Jerarquía de herencia

System.Object
  Microsoft.VisualStudio.Modeling.Rule
    Microsoft.VisualStudio.Modeling.AddRule
      Microsoft.VisualStudio.Modeling.Diagrams.CommentShapeAddRule
      Microsoft.VisualStudio.Modeling.Diagrams.NodeShape.ExpandCollapseNodeShapeWhenAddedToDiagramRule
      Microsoft.VisualStudio.Modeling.Diagrams.ParentShapeContainsNestedChildShapesAddRule
      Microsoft.VisualStudio.Modeling.Diagrams.ParentShapeHasRelativeChildShapesAddRule
      Microsoft.VisualStudio.Modeling.Diagrams.ShapeElementAddRule
      Microsoft.VisualStudio.Modeling.ElementDeserializedRule

Espacio de nombres:  Microsoft.VisualStudio.Modeling
Ensamblado:  Microsoft.VisualStudio.Modeling.Sdk.11.0 (en Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)

Sintaxis

'Declaración
Public MustInherit Class AddRule _
    Inherits Rule
public abstract class AddRule : Rule

El tipo AddRule expone los siguientes miembros.

Constructores

  Nombre Descripción
Método protegido AddRule Inicializa una instancia de la clase AddRule.

Arriba

Propiedades

  Nombre Descripción
Propiedad pública FireBefore true si esta regla se ejecute antes de que el cambio aparece. (Se hereda de Rule).
Propiedad pública FireImmediately true si esta regla ejecuta inmediatamente el cambio aparece. (Se hereda de Rule).
Propiedad pública FireOnLocalCommit true si esta regla se ejecuta cuando se compromete de la transacción actual. (Se hereda de Rule).
Propiedad pública FireOnTopLevelCommit true si esta regla se ejecuta cuando se compromete de la transacción de nivel superior. (Se hereda de Rule).
Propiedad pública FireTime Obtiene o establece si la regla se debe ejecutar.Establece normalmente por el atributo de RuleOn. (Se hereda de Rule).
Propiedad pública IsEnabled obtiene o establece si la regla está habilitada.True normalmente de forma predeterminada, pero puede inicializarla en false en el atributo de RuleOn. (Se hereda de Rule).
Propiedad pública Priority obtiene la prioridad que se asigna a la regla.Ayuda a determinar el orden en que las reglas se ejecutan al final de una transacción. (Se hereda de Rule).

Arriba

Métodos

  Nombre Descripción
Método público CompareTo(Object) compara la regla a otro objeto. (Se hereda de Rule).
Método público CompareTo(Rule) Compara la regla a otra regla por sus identificadores. (Se hereda de Rule).
Método público ElementAdded Alerta agentes de escucha que se ha utilizado una regla.
Método público Equals(Object) Comprueba si la regla es igual a otro objeto. (Se hereda de Rule).
Método público Equals(Rule) comprueba si una regla sea igual a otra regla. (Se hereda de Rule).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetHashCode obtiene el código hash para la regla. (Se hereda de Rule).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

Comentarios

Las reglas de este tipo se desencadenan cuando un elemento, una relación, una forma, un conector o un diagrama se agrega al modelo.

Un atributo de RuleOnAttribute título en la clase indica lo que el tipo de objeto la regla en y cuando la regla debe desencadenar.

Se llama a la regla cuando el objeto del tipo especificado se agrega al modelo, si se agrega en la interfaz de usuario o mediante programación.

Esta regla también se desencadena cuando un elemento se carga desde un archivo.Si desea evitar responder cuando esto sucede, incluya este código en el ElementAdded:

// Ignore this call if we're currently loading a model:
    if (e.ModelElement.Store.TransactionManager
          .CurrentTransaction.IsSerializing) 
       return;

Para obtener más información y ejemplos, vea Las reglas propagan los cambios dentro del modelo.

Ejemplos

en el ejemplo siguiente, una regla es definido que deriva de AddRule.Este conjuntos de reglas la posición de una forma cuando se agrega al diagrama.

El atributo de RuleOn indica que la regla debe iniciar cuando las confirmaciones de transacciones de nivel superior.

[RuleOn(typeof(ParentShapeContainsNestedChildShapes), FireTime = TimeToFire.TopLevelCommit)]
public class ShapeAddedToDiagramRule : AddRule
{
  private double offset = 0.25;
  private PointD location = new PointD(0.25, 0.25);

  public override void ElementAdded(ElementAddedEventArgs e)
  {
    Shape shape = null;
    ParentShapeContainsNestedChildShapes nestedLink = e.ModelElement as ParentShapeContainsNestedChildShapes;
    if (nestedLink != null)
    {
      shape = nestedLink.NestedChildShapes as Shape;
    }

    if (shape != null && shape.Diagram != null)
    {
      // Expand the shape and move it to its new position
      shape.IsExpanded = true;
      shape.Location = new PointD(location.X, location.Y + offset);

      // Adjust the height offset for the size of the shape
      // (I'm assuming that the DefaultContainerMargin
      // provides for a decent spacing between the shapes)
      offset += shape.Size.Height + shape.Diagram.DefaultContainerMargin.Height;
    }
  }
}

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.VisualStudio.Modeling (Espacio de nombres)

Otros recursos

Las reglas propagan los cambios dentro del modelo