NodeShape.BoundsRules - свойство
Привязывает правила, которые ограничивают как пользователь может обновить размер и положение ограничивающего прямоугольника. Переопределите для возврата BoundsRules.
Пространство имен: Microsoft.VisualStudio.Modeling.Diagrams
Сборка: Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0 (в Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Microsoft.VisualStudio.Modeling.Diagrams - пространство имен