AddRule - класс
Представляет правило, которое вызывается, когда объект добавляется в модели.
Иерархия наследования
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
Пространство имен: Microsoft.VisualStudio.Modeling
Сборка: Microsoft.VisualStudio.Modeling.Sdk.11.0 (в Microsoft.VisualStudio.Modeling.Sdk.11.0.dll)
Синтаксис
'Декларация
Public MustInherit Class AddRule _
Inherits Rule
public abstract class AddRule : Rule
Тип AddRule предоставляет следующие члены.
Конструкторы
Имя | Описание | |
---|---|---|
AddRule | Инициализирует экземпляр класса AddRule. |
В начало страницы
Свойства
Имя | Описание | |
---|---|---|
FireBefore | true если это правило будет выполняться перед выполнением изменения. (Унаследовано от Rule.) | |
FireImmediately | true если данное правило, выполняется немедленно происходит изменение. (Унаследовано от Rule.) | |
FireOnLocalCommit | true если это правило выполняется при фиксации текущей транзакции. (Унаследовано от Rule.) | |
FireOnTopLevelCommit | true если это правило выполняется при фиксации транзакции верхнего уровня. (Унаследовано от Rule.) | |
FireTime | Возвращает или задает если правило должно выполняться.Обычно устанавливать атрибутом RuleOn. (Унаследовано от Rule.) | |
IsEnabled | Возвращает или задает, включена ли правило.Обычно true, по умолчанию, но можно инициализировать его в значение false в атрибуте RuleOn. (Унаследовано от Rule.) | |
Priority | Возвращает приоритет, присвоенный правило.Справки для указания порядка, в котором правила выполняются в конце транзакции. (Унаследовано от Rule.) |
В начало страницы
Методы
Имя | Описание | |
---|---|---|
CompareTo(Object) | Сравнивает правило к другому объекту. (Унаследовано от Rule.) | |
CompareTo(Rule) | Сравнивает правило к другому правила их идентификаторов. (Унаследовано от Rule.) | |
ElementAdded | Alerts, прослушиватели, что правило. | |
Equals(Object) | Проверяет, является ли правило равно другому объекту. (Унаследовано от Rule.) | |
Equals(Rule) | Проверяет, равны ли правило к другим правилом. (Унаследовано от Rule.) | |
Finalize | Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.) | |
GetHashCode | Возвращает хэш-код для правила. (Унаследовано от Rule.) | |
GetType | Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.) | |
MemberwiseClone | Создает неполную копию текущего объекта Object. (Унаследовано от Object.) | |
ToString | Возвращает строку, представляющую текущий объект. (Унаследовано от Object.) |
В начало страницы
Заметки
Правила этого типа активированы, когда элемент связь, форма соединитель или схемы добавляются к модели.
A RuleOnAttribute атрибут помещенный в классе указывает тип объекта правило работает и когда следует создать правило.
Правило вызывается, когда объект указанного типа добавляются в модель добавляется ли он в пользовательском интерфейсе или программно.
Правило также активированы, когда элемент загружается из файла.Если вы хотите избежать отвечать, когда это происходит, включите этот код в вашем ElementAdded.
// Ignore this call if we're currently loading a model:
if (e.ModelElement.Store.TransactionManager
.CurrentTransaction.IsSerializing)
return;
Дополнительные сведения и примеры см. в разделе Правила распространяют изменения в пределах модели.
Примеры
В следующем примере правило определяется которого наследует AddRule.Эти наборы правил положение формы, когда она будет добавлен к схеме.
RuleOn атрибут указывает, что правило должно создать при фиксации транзакции верхнего уровня.
[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;
}
}
}
Потокобезопасность
Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
См. также
Ссылки
Microsoft.VisualStudio.Modeling - пространство имен