Classe AddRule
Rappresenta una regola che viene 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.11.0 (in Microsoft.VisualStudio.Modeling.Sdk.11.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 di AddRule classe. |
In alto
Proprietà
Nome | Descrizione | |
---|---|---|
![]() |
FireBefore | true se questa regola verrà eseguita prima della modifica si verifichi. (Ereditato da Rule) |
![]() |
FireImmediately | true se questa regola eseguirà immediatamente la modifica avviene. (Ereditato da Rule) |
![]() |
FireOnLocalCommit | true se questa regola viene eseguito quando i commit della transazione corrente. (Ereditato da Rule) |
![]() |
FireOnTopLevelCommit | true se questa regola viene eseguito quando i commit della transazione di primo livello. (Ereditato da Rule) |
![]() |
FireTime | Ottiene o imposta quando la regola necessario eseguire.Generalmente impostato dall'attributo di RuleOn. (Ereditato da Rule) |
![]() |
IsEnabled | Ottiene o imposta se la regola viene attivata.In genere true per impostazione predefinita, ma è possibile inizializzare false nell'attributo di RuleOn. (Ereditato da Rule) |
![]() |
Priority | Ottiene la priorità che verrà assegnata alla regola.Guida per determinare l'ordine in cui le regole vengono eseguite alla fine di una transazione. (Ereditato da Rule) |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
![]() |
CompareTo(Object) | Confronta la regola a un altro oggetto. (Ereditato da Rule) |
![]() |
CompareTo(Rule) | Confronta la regola a un'altra regola dai relativi ID. (Ereditato da Rule) |
![]() |
ElementAdded | avvisa i listener che una regola è stata utilizzata. |
![]() |
Equals(Object) | Verifica se la regola sia uguale a un altro oggetto. (Ereditato da Rule) |
![]() |
Equals(Rule) | Si 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 per la 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.
In RuleOnAttribute l'attributo posizionato sulla classe indica il tipo di oggetto la regola funziona su e quando la regola deve essere generato.
La regola viene chiamata quando l'oggetto del tipo specificato viene aggiunto al modello, se si aggiunge nell'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 questa situazione, includere il 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.
RuleOn l'attributo 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