Udostępnij za pośrednictwem


Klasa AddRule

Reprezentuje regułę, która jest wywoływana, gdy obiekt jest dodawane do modelu.

Hierarchia dziedziczenia

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

Przestrzeń nazw:  Microsoft.VisualStudio.Modeling
Zestaw:  Microsoft.VisualStudio.Modeling.Sdk.12.0 (w Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)

Składnia

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

Typ AddRule uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda chroniona AddRule Inicjuje wystąpienie AddRule klasy.

Początek

Właściwości

  Nazwa Opis
Właściwość publiczna FireBefore true Jeśli zasada ta zostanie wykonana przed zmianą. (Odziedziczone z Rule).
Właściwość publiczna FireImmediately true występuje, jeśli ta reguła będzie wykonywać bezpośrednio zmiany. (Odziedziczone z Rule).
Właściwość publiczna FireOnLocalCommit true Jeśli zasada ta zostanie wykonany po zatwierdzeniu transakcji bieżącego. (Odziedziczone z Rule).
Właściwość publiczna FireOnTopLevelCommit true Jeśli zasada ta zostanie wykonany po zatwierdzeniu transakcji najwyższego poziomu. (Odziedziczone z Rule).
Właściwość publiczna FireTime Pobiera lub ustawia kiedy powinno być wykonane przez regułę.Normalnie ustawione przez atrybut RuleOn. (Odziedziczone z Rule).
Właściwość publiczna IsEnabled Pobiera lub ustawia, czy reguła jest włączona.Normalnie wartość true, domyślnie, ale można go zainicjować false w atrybucie RuleOn. (Odziedziczone z Rule).
Właściwość publiczna Priority Pobiera priorytetu, który jest przypisany do reguły.Pozwala określić kolejności wykonywania reguł po zakończeniu transakcji. (Odziedziczone z Rule).

Początek

Metody

  Nazwa Opis
Metoda publiczna CompareTo(Object) Porównuje reguły do innego obiektu. (Odziedziczone z Rule).
Metoda publiczna CompareTo(Rule) Porównuje regułę do innej reguły, według ich identyfikatorów. (Odziedziczone z Rule).
Metoda publiczna ElementAdded Alerty detektory zastosowano regułę.
Metoda publiczna Equals(Object) Sprawdza, czy reguła jest równe do innego obiektu. (Odziedziczone z Rule).
Metoda publiczna Equals(Rule) Sprawdza, czy reguła jest równa inna reguła. (Odziedziczone z Rule).
Metoda chroniona Finalize Umożliwia obiekt spróbuj zwolnić zasoby i wykonywania innych operacji oczyszczania przed jest odzyskane w procesie wyrzucania elementów bezużytecznych. (Odziedziczone z Object).
Metoda publiczna GetHashCode Pobiera kod skrótu dla reguły. (Odziedziczone z Rule).
Metoda publiczna GetType Pobiera Type bieżącego wystąpienia. (Odziedziczone z Object).
Metoda chroniona MemberwiseClone Tworzy kopię płytkie bieżące Object. (Odziedziczone z Object).
Metoda publiczna ToString Zwraca ciąg, który reprezentuje bieżący obiekt. (Odziedziczone z Object).

Początek

Uwagi

Zasady tego typu są wyzwalane, gdy element, relacji, kształt, łącznika lub diagram jest dodawane do modelu.

A RuleOnAttribute umieszczane w klasie atrybut wskazuje typ obiektu, które reguła działa na i gdy reguła powinna pożaru.

Reguła jest wywoływane, gdy obiekt określonego typu zostanie dodany do modelu, czy jest on dodawany w interfejsie użytkownika lub programowo.

Reguła również zostanie wywołany, gdy element jest ładowany z pliku.Aby uniknąć odpowiadać, gdy tak się stanie, objąć ten kod na ElementAdded:

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

Aby uzyskać dodatkowe informacje i przykłady, zobacz Reguły propagujące zmiany w modelu.

Przykłady

W poniższym przykładzie, A reguła jest definiowana wynikającą z AddRule.Ta reguła Ustawia położenie kształtu, gdy jest dodawana do diagramu.

RuleOn Atrybut wskazuje, że reguła powinna ognia po zatwierdzeniu transakcji najwyższego poziomu.

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

Bezpieczeństwo wątku

Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

Zobacz też

Informacje

Przestrzeń nazw Microsoft.VisualStudio.Modeling

Inne zasoby

Reguły propagujące zmiany w modelu