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


NodeShape.BoundsRules - свойство

Правила границ ограничивают как пользователь может обновить размер и положение ограничивающего прямоугольника.Переопределите для возврата BoundsRules.

Пространство имен:  Microsoft.VisualStudio.Modeling.Diagrams
Сборка:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0 (в Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)

Синтаксис

'Декларация
Public Overridable ReadOnly Property BoundsRules As BoundsRules
public virtual BoundsRules BoundsRules { get; }

Значение свойства

Тип: Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules

Заметки

Переопределите BoundsRules в классе формы для ограничения как пользователь может перемещать или размер фигуры.Например, можно запретить пользователю перемещение фигуру из от или в определенной области или можно ограничить ширину и высоту к определенному диапазонам или пропорциям.Правила применяются при перетаскивании пользователем форма или ее части или углы и пользователь видит, что переход фантомы формируют быть ограничиванным согласно вашим правилам.

Это свойство должно возвращать экземпляр класса, реализующего BoundsRules.Реализация BoundsRules должна иметь метод M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD).Этот метод вызывается повторно, пока пользователь перетаскивает фигуры.Метод предоставляется предложенными границами, представляющих размер и располагают, что пользователь пытается установить.Он должен возвратить границы разрешенные пользовательским правилом.

Если отсутствует ограничение не применяется BoundsRules возвращает nullссылка NULL (Nothing в Visual Basic).

ПримечаниеПримечание

Если необходимо ответить на изменение размера или положения, то после того, как оно произошло, например для обработки положение смежных фигур, создайте ChangeRule, чтобы контролировать свойством AbsoluteBounds.См. пример в разделе AbsoluteBoundsDomainPropertyId.Если нужно обновить значения вне хранилища, следует переопределить OnAbsoluteBoundsChanged.

Примеры

В этом примере фигуры класса MyShape иметь определенную минимальную ширину и рацион высоты к ширине.

// MyShape is defined in DSL Definition.
public partial class MyShape 
{
    public override BoundsRules BoundsRules
    {
        get
        {
            return new MyShapeBoundsRule();
        }
    }
}
public class MyShapeBoundsRule : BoundsRules
{
    public override RectangleD GetCompliantBounds(ShapeElement shape, RectangleD proposedBounds)
    {
       // Do not modify bounds if reading from file.
        if (shape.Store.InSerializationTransaction)
          return proposedBounds;
        MyShape myShape = shape as MyShape;
        if (myShape == null) return proposedBounds;
        RectangleD approvedBounds = new RectangleD();
        // In this rule, any Location is OK:
        approvedBounds.Location = proposedBounds.Location;
        // But the height and width are constrained:
        approvedBounds.Height = Math.Max(proposedBounds.Height, 1.0);
        approvedBounds.Width = approvedBounds.Height * 1.618;
        return approvedBounds;
    }    
 }

Безопасность платформы .NET Framework

См. также

Ссылки

NodeShape Класс

Microsoft.VisualStudio.Modeling.Diagrams - пространство имен