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
설명
어떻게 이동할 수를 제한 하려면 shape 클래스 또는 도형 크기를 변경 BoundsRules를 재정의 합니다. 예를 들어,의 셰이프를 이동 하거나, 특정 영역에 사용자를 막을 수 또는 너비와 높이를 특정 범위 또는 비율 제한 될 수 있습니다. 규칙 셰이프 또는 면 또는 모서리를 드래그 하는 사용자 및 사용자의 규칙에 따라 제한 되는 유령 모양 움직임 표시 되는 동안 적용 됩니다.
이 속성을 구현 하는 클래스의 인스턴스를 반환 해야 BoundsRules. BoundsRules 구현 메서드가 있어야 합니다. M:Microsoft.VisualStudio.Modeling.Diagrams.BoundsRules.GetCompliantBounds(Microsoft.VisualStudio.Modeling.Diagrams.ShapeElement,Microsoft.VisualStudio.Modeling.Diagrams.RectangleD). 사용자 셰이프를 끄는 동안이 메서드가 반복적으로 호출 됩니다. 메서드는 사용자가 설정 하려는 위치와 크기를 나타내는 제안 된 범위를 제공 합니다. 이 규칙에 의해 허용 된 범위를 반환 해야 합니다.
제약 조건이 없는 경우에 적용 됩니다 BoundsRules 반환 nullNull 참조(Visual Basic의 경우 Nothing).
참고
크기 또는 위치를 변경 하려면, 예를 들어 인접 한 도형의 위치를 조정 하려면 발생 한 후에 응답 하려는 경우 AbsoluteBounds 속성을 관찰 하는 ChangeRule을 만듭니다.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 보안
- 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.