Classe AddRule
Rappresenta una regola chiamata quando un oggetto viene aggiunto al modello.
Gerarchia di ereditarietà
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
Spazio dei nomi: Microsoft.VisualStudio.Modeling
Assembly: Microsoft.VisualStudio.Modeling.Sdk.12.0 (in Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)
Sintassi
'Dichiarazione
Public MustInherit Class AddRule _
Inherits Rule
public abstract class AddRule : Rule
Il tipo AddRule espone i seguenti membri.
Costruttori
Nome | Descrizione | |
---|---|---|
![]() |
AddRule | Inizializza un'istanza della classe AddRule. |
In alto
Proprietà
Nome | Descrizione | |
---|---|---|
![]() |
FireBefore | true se questa regola verrà eseguita prima della modifica. (Ereditato da Rule) |
![]() |
FireImmediately | true se questa regola verrà eseguita nel momento in cui viene apportata la modifica. (Ereditato da Rule) |
![]() |
FireOnLocalCommit | true se questa regola verrà eseguita durante il commit della transazione corrente. (Ereditato da Rule) |
![]() |
FireOnTopLevelCommit | true se questa regola verrà eseguita durante il commit della transazione di livello superiore. (Ereditato da Rule) |
![]() |
FireTime | Ottiene o imposta il momento in cui deve essere eseguita la regola.Generalmente impostato dall'attributo RuleOn. (Ereditato da Rule) |
![]() |
IsEnabled | Ottiene o imposta un valore che indica se la regola è abilitata.In genere true per impostazione predefinita, ma è possibile inizializzarlo a false nell'attributo RuleOn. (Ereditato da Rule) |
![]() |
Priority | Ottiene la priorità assegnata alla regola.Aiuta a determinare l'ordine di esecuzione delle regole alla fine di una transazione. (Ereditato da Rule) |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
![]() |
CompareTo(Object) | Confronta la regola con un altro oggetto. (Ereditato da Rule) |
![]() |
CompareTo(Rule) | Confronta la regola con un altra regola mediante i rispettivi ID. (Ereditato da Rule) |
![]() |
ElementAdded | Avvisa i listener che è stata utilizzata una regola. |
![]() |
Equals(Object) | Verifica se la regola è uguale a un altro oggetto. (Ereditato da Rule) |
![]() |
Equals(Rule) | Verifica se una regola è uguale a un'altra regola. (Ereditato da Rule) |
![]() |
Finalize | Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object) |
![]() |
GetHashCode | Ottiene il codice hash della regola. (Ereditato da Rule) |
![]() |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
![]() |
MemberwiseClone | Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object) |
![]() |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
In alto
Note
Le regole di questo tipo sono attivate quando un elemento, una relazione, una forma, un connettore o un diagramma viene aggiunto al modello.
Un attributo di RuleOnAttribute posizionato sulla classe indica il tipo di oggetto la regola funziona tramite e quando la regola deve generare.
La regola viene chiamata quando l'oggetto del tipo specificato viene aggiunto al modello, se viene aggiunto all'interfaccia utente o a livello di codice.
La regola viene attivata quando un elemento viene caricato dal file. Se si desidera evitare di rispondere quando si verifica, includere questo codice nel ElementAdded:
// Ignore this call if we're currently loading a model:
if (e.ModelElement.Store.TransactionManager
.CurrentTransaction.IsSerializing)
return;
Per ulteriori informazioni ed esempi, vedere Le regole propagano le modifiche all'interno del modello.
Esempi
Nell'esempio seguente, una regola definita che deriva da AddRule. Questo set di regole la posizione di una forma quando viene aggiunto al diagramma.
L'attributo di RuleOn indica che la regola deve generare quando il commit della transazione di primo livello.
[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;
}
}
}
Codice thread safe
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.VisualStudio.Modeling