AddRule-Klasse
Stellt eine Regel dar, die aufgerufen wird, wenn ein Objekt im Modell hinzugefügt wird.
Vererbungshierarchie
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
Namespace: Microsoft.VisualStudio.Modeling
Assembly: Microsoft.VisualStudio.Modeling.Sdk.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)
Syntax
'Declaration
Public MustInherit Class AddRule _
Inherits Rule
public abstract class AddRule : Rule
Der AddRule-Typ macht die folgenden Member verfügbar.
Konstruktoren
Name | Beschreibung | |
---|---|---|
AddRule | Initialisiert eine Instanz der AddRule-Klasse. |
Zum Seitenanfang
Eigenschaften
Name | Beschreibung | |
---|---|---|
FireBefore | true , wenn diese Regel ausgeführt wird, bevor die Änderung stattfindet. (Von Rule geerbt.) | |
FireImmediately | true , wenn diese Regel die Änderung sofort ausgeführt werden, tritt auf. (Von Rule geerbt.) | |
FireOnLocalCommit | true , wenn diese Regel wann die Commite der aktuellen Transaktion ausgeführt wird. (Von Rule geerbt.) | |
FireOnTopLevelCommit | true , wenn diese Regel wann die transaktionale commite der obersten Ebene ausgeführt wird. (Von Rule geerbt.) | |
FireTime | Ruft ab oder legt fest, ob die Regel ausgeführt werden soll.Normalerweise festgelegt durch das RuleOn-Attribut. (Von Rule geerbt.) | |
IsEnabled | Ruft ab oder legt fest, ob die Regel aktiviert ist.Richten Sie normalerweise standardmäßig aus, aber Sie können es auf " false " im RuleOn-Attribut initialisieren. (Von Rule geerbt.) | |
Priority | Ruft die Priorität ab, die der Regel zugewiesene.Hilfen, um die Reihenfolge zu bestimmen, in der Regel am Ende einer Transaktion ausgeführt werden. (Von Rule geerbt.) |
Zum Seitenanfang
Methoden
Name | Beschreibung | |
---|---|---|
CompareTo(Object) | Vergleicht die Regel mit einem anderen Objekt. (Von Rule geerbt.) | |
CompareTo(Rule) | Vergleicht die Regel an eine andere Regel durch ihre IDs. (Von Rule geerbt.) | |
ElementAdded | Alarmiert Listener, dass eine Regel verwendet wurde. | |
Equals(Object) | Überprüft, ob die Regel gleich dem Wert eines anderen Objekts ist. (Von Rule geerbt.) | |
Equals(Rule) | Überprüft, ob eine weitere Regel eine Regel gleich sind. (Von Rule geerbt.) | |
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.) | |
GetHashCode | Ruft den Hashcode für die Regel ab. (Von Rule geerbt.) | |
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) | |
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) | |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
Zum Seitenanfang
Hinweise
Regeln dieses Typs wird ausgelöst, wenn ein Element, eine Beziehung, eine Form, ein Konnektor oder ein Diagramm zum Modell hinzugefügt wird.
Ein RuleOnAttribute-Attribut, das auf die Klasse platziert wird, gibt an, welchen Objekttyp die Regel gearbeitet und wenn die Regel auslösen soll.
In der Regel wird aufgerufen, wenn das Objekt des angegebenen Typs zum Modell hinzugefügt wird, ob es in der Benutzeroberfläche oder programmgesteuert hinzugefügt wird.
In der Regel wird auch ausgelöst, wenn ein Element der Datei geladen wird.Wenn Sie vermeiden möchten, zu reagieren, wenn dies geschieht, fügen Sie diesen Code in ElementAdded ein:
// Ignore this call if we're currently loading a model:
if (e.ModelElement.Store.TransactionManager
.CurrentTransaction.IsSerializing)
return;
Weitere Informationen und Beispiele finden Sie unter Regeln propagieren Änderungen im Modell.
Beispiele
Im folgenden Beispiel wird eine Regel definiert, die von AddRuleberechnet.Dieses Regelsätze die Position einer Form, wenn sie dem Diagramm hinzugefügt wird.
Das RuleOn-Attribut gibt an, dass die Regel auslösen soll, wenn die Transaktion commite der obersten Ebene.
[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;
}
}
}
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Siehe auch
Referenz
Microsoft.VisualStudio.Modeling-Namespace