Sdílet prostřednictvím


AddRule – třída

Představuje pravidlo, které je volána, když je objekt přidány do modelu.

Hierarchie dědičnosti

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

Obor názvů:  Microsoft.VisualStudio.Modeling
Sestavení:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (v Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Syntaxe

'Deklarace
Public MustInherit Class AddRule _
    Inherits Rule
public abstract class AddRule : Rule

Typ AddRule zveřejňuje následující členy.

Konstruktory

  Název Popis
Chráněná metoda AddRule Inicializuje instanci AddRule třídy.

Nahoru

Vlastnosti

  Název Popis
Veřejná vlastnost FireBefore true Pokud toto pravidlo bude proveden před provedením změny. (Zděděno z Rule.)
Veřejná vlastnost FireImmediately true dojde-li toto pravidlo bude okamžitě provést změnu. (Zděděno z Rule.)
Veřejná vlastnost FireOnLocalCommit true Pokud toto pravidlo se spustí, když aktuální transakce potvrzena. (Zděděno z Rule.)
Veřejná vlastnost FireOnTopLevelCommit true Pokud bude toto pravidlo spustit při potvrzení transakce nejvyšší úrovně. (Zděděno z Rule.)
Veřejná vlastnost FireTime Získá nebo nastaví při by mělo pravidlo spouštět.Obvykle nastavte atribut RuleOn. (Zděděno z Rule.)
Veřejná vlastnost IsEnabled Získá nebo nastaví, zda je pravidlo povoleno.Obvykle platí ve výchozím nastavení, ale bude možné inicializovat false v atributu RuleOn. (Zděděno z Rule.)
Veřejná vlastnost Priority Získá prioritu přiřazenou pravidlo.Pomáhá určit pořadí, ve kterém jsou pravidla prováděna na konci transakce. (Zděděno z Rule.)

Nahoru

Metody

  Název Popis
Veřejná metoda CompareTo(Object) Porovná pravidlo na jiný objekt. (Zděděno z Rule.)
Veřejná metoda CompareTo(Rule) Porovná pravidlo podle jejich ID jiného pravidla. (Zděděno z Rule.)
Veřejná metoda ElementAdded Byla použita pravidla upozornění posluchače.
Veřejná metoda Equals(Object) Ověří, zda pravidlo je rovna jiný objekt. (Zděděno z Rule.)
Veřejná metoda Equals(Rule) Ověří, zda pravidlo je rovna jiné pravidlo. (Zděděno z Rule.)
Chráněná metoda Finalize Umožňuje objektu k pokusu uvolnit prostředky a provádět další operace vyčištění před je zažádáno systémem uvolňování paměti. (Zděděno z Object.)
Veřejná metoda GetHashCode Získá kód hash pro pravidlo. (Zděděno z Rule.)
Veřejná metoda GetType Získá Type aktuální instance. (Zděděno z Object.)
Chráněná metoda MemberwiseClone Vytvoří mělká kopie aktuálního Object. (Zděděno z Object.)
Veřejná metoda ToString Vrací řetězec, který představuje aktuální objekt. (Zděděno z Object.)

Nahoru

Poznámky

Pravidla tohoto typu se spouštějí při přidání prvku, vztah, tvar, spojnice nebo diagramu modelu.

A RuleOnAttribute na třídu atributu označuje, jaký typ objektu pravidlo pracuje a kdy by požáru pravidlo.

Pravidlo se nazývá při přidání objektu zadaného typu modelu, zda je přidán v uživatelském rozhraní nebo pomocí programu.

Pravidlo je také spuštěna při prvku načten ze souboru.Pokud se chcete vyhnout reagovat, pokud k tomu dojde, zahrňte do ElementAdded tento kód:

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

Další informace a příklady naleznete v tématu Pravidla šířící změny v modelu.

Příklady

V následujícím příkladu je definováno pravidlo a který je odvozen od AddRule.Toto pravidlo se nastavuje umístění obrazce při přidání do diagramu.

RuleOn Atribut určuje, že pravidlo by oheň při nejvyšší úrovni transakce potvrzena.

[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;
    }
  }
}

Bezpečný přístup z více vláken

Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou bezpečné pro přístup z více vláken. Není zaručeno, že členy instancí jsou bezpečné pro přístup z více vláken.

Viz také

Referenční dokumentace

Microsoft.VisualStudio.Modeling – obor názvů

Další zdroje

Pravidla šířící změny v modelu