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