AddRule – třída
Představuje pravidlo, které je volána, když je objekt přidány do modelu.
Hierarchie dědičnosti
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
Obor názvů: Microsoft.VisualStudio.Modeling
Sestavení: Microsoft.VisualStudio.Modeling.Sdk.12.0 (v Microsoft.VisualStudio.Modeling.Sdk.12.0.dll)
Syntaxe
'Deklarace
Public MustInherit Class AddRule _
Inherits Rule
public abstract class AddRule : Rule
Typ AddRule zveřejňuje následující členy.
Konstruktory
Název | Popis | |
---|---|---|
AddRule | Inicializuje instanci AddRule třídy. |
Nahoru
Vlastnosti
Název | Popis | |
---|---|---|
FireBefore | true Pokud toto pravidlo bude proveden před provedením změny. (Zděděno z Rule.) | |
FireImmediately | true dojde-li toto pravidlo bude okamžitě provést změnu. (Zděděno z Rule.) | |
FireOnLocalCommit | true Pokud toto pravidlo se spustí, když aktuální transakce potvrzena. (Zděděno z Rule.) | |
FireOnTopLevelCommit | true Pokud bude toto pravidlo spustit při potvrzení transakce nejvyšší úrovně. (Zděděno z Rule.) | |
FireTime | Získá nebo nastaví při by mělo pravidlo spouštět.Obvykle nastavte atribut RuleOn. (Zděděno z Rule.) | |
IsEnabled | Získá nebo nastaví, zda je pravidlo povoleno.Obvykle platí ve výchozím nastavení, ale bude možné inicializovat false v atributu RuleOn. (Zděděno z Rule.) | |
Priority | Získá prioritu přiřazenou pravidlo.Pomáhá určit pořadí, ve kterém jsou pravidla prováděna na konci transakce. (Zděděno z Rule.) |
Nahoru
Metody
Název | Popis | |
---|---|---|
CompareTo(Object) | Porovná pravidlo na jiný objekt. (Zděděno z Rule.) | |
CompareTo(Rule) | Porovná pravidlo podle jejich ID jiného pravidla. (Zděděno z Rule.) | |
ElementAdded | Byla použita pravidla upozornění posluchače. | |
Equals(Object) | Ověří, zda pravidlo je rovna jiný objekt. (Zděděno z Rule.) | |
Equals(Rule) | Ověří, zda pravidlo je rovna jiné pravidlo. (Zděděno z Rule.) | |
Finalize | Umožňuje objektu k pokusu uvolnit prostředky a provádět další operace vyčištění před je zažádáno systémem uvolňování paměti. (Zděděno z Object.) | |
GetHashCode | Získá kód hash pro pravidlo. (Zděděno z Rule.) | |
GetType | Získá Type aktuální instance. (Zděděno z Object.) | |
MemberwiseClone | Vytvoří mělká kopie aktuálního Object. (Zděděno z Object.) | |
ToString | Vrací řetězec, který představuje aktuální objekt. (Zděděno z Object.) |
Nahoru
Poznámky
Pravidla tohoto typu se spouštějí při přidání prvku, vztah, tvar, spojnice nebo diagramu modelu.
A RuleOnAttribute na třídu atributu označuje, jaký typ objektu pravidlo pracuje a kdy by požáru pravidlo.
Pravidlo se nazývá při přidání objektu zadaného typu modelu, zda je přidán v uživatelském rozhraní nebo pomocí programu.
Pravidlo je také spuštěna při prvku načten ze souboru.Pokud se chcete vyhnout reagovat, pokud k tomu dojde, zahrňte do ElementAdded tento kód:
// Ignore this call if we're currently loading a model:
if (e.ModelElement.Store.TransactionManager
.CurrentTransaction.IsSerializing)
return;
Další informace a příklady naleznete v tématu Pravidla šířící změny v modelu.
Příklady
V následujícím příkladu je definováno pravidlo a který je odvozen od AddRule.Toto pravidlo se nastavuje umístění obrazce při přidání do diagramu.
RuleOn Atribut určuje, že pravidlo by oheň při nejvyšší úrovni transakce potvrzena.
[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;
}
}
}
Bezpečný přístup z více vláken
Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou bezpečné pro přístup z více vláken. Není zaručeno, že členy instancí jsou bezpečné pro přístup z více vláken.
Viz také
Referenční dokumentace
Microsoft.VisualStudio.Modeling – obor názvů