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 | |
---|---|---|
AddRule | Inicjuje wystąpienie AddRule klasy. |
Początek
Właściwości
Nazwa | Opis | |
---|---|---|
FireBefore | true Jeśli zasada ta zostanie wykonana przed zmianą. (Odziedziczone z Rule). | |
FireImmediately | true występuje, jeśli ta reguła będzie wykonywać bezpośrednio zmiany. (Odziedziczone z Rule). | |
FireOnLocalCommit | true Jeśli zasada ta zostanie wykonany po zatwierdzeniu transakcji bieżącego. (Odziedziczone z Rule). | |
FireOnTopLevelCommit | true Jeśli zasada ta zostanie wykonany po zatwierdzeniu transakcji najwyższego poziomu. (Odziedziczone z Rule). | |
FireTime | Pobiera lub ustawia kiedy powinno być wykonane przez regułę.Normalnie ustawione przez atrybut RuleOn. (Odziedziczone z Rule). | |
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). | |
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 | |
---|---|---|
CompareTo(Object) | Porównuje reguły do innego obiektu. (Odziedziczone z Rule). | |
CompareTo(Rule) | Porównuje regułę do innej reguły, według ich identyfikatorów. (Odziedziczone z Rule). | |
ElementAdded | Alerty detektory zastosowano regułę. | |
Equals(Object) | Sprawdza, czy reguła jest równe do innego obiektu. (Odziedziczone z Rule). | |
Equals(Rule) | Sprawdza, czy reguła jest równa inna reguła. (Odziedziczone z Rule). | |
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). | |
GetHashCode | Pobiera kod skrótu dla reguły. (Odziedziczone z Rule). | |
GetType | Pobiera Type bieżącego wystąpienia. (Odziedziczone z Object). | |
MemberwiseClone | Tworzy kopię płytkie bieżące Object. (Odziedziczone z Object). | |
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