Поделиться через


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 - пространство имен

Другие ресурсы

Правила распространяют изменения в пределах модели