Strokes.GetBoundingBox 메서드 (BoundingBoxMode)
업데이트: 2007년 11월
지정된 BoundingBoxMode 플래그를 사용하여 경계를 결정하는 방식으로 Stroke 개체가 들어 있는 경계 Rectangle을 반환합니다.
네임스페이스: Microsoft.Ink
어셈블리: Microsoft.Ink(Microsoft.Ink.dll)
구문
‘선언
Public Function GetBoundingBox ( _
mode As BoundingBoxMode _
) As Rectangle
‘사용 방법
Dim instance As Strokes
Dim mode As BoundingBoxMode
Dim returnValue As Rectangle
returnValue = instance.GetBoundingBox(mode)
public Rectangle GetBoundingBox(
BoundingBoxMode mode
)
public:
Rectangle GetBoundingBox(
BoundingBoxMode mode
)
public Rectangle GetBoundingBox(
BoundingBoxMode mode
)
public function GetBoundingBox(
mode : BoundingBoxMode
) : Rectangle
매개 변수
- mode
형식: Microsoft.Ink.BoundingBoxMode
Strokes 컬렉션의 경계 상자를 계산하는 데 사용할 Strokes 컬렉션의 그리기 특성과 같은 특징을 지정하는 BoundingBoxMode 열거형의 멤버입니다.
반환 값
형식: System.Drawing.Rectangle
Strokes 컬렉션의 경계 상자를 정의하는 경계 Rectangle을 반환합니다.
설명
경계 Rectangle은 잉크 공간 좌표에 있습니다.
경계 Rectangle은 Strokes 컬렉션을 표시할 때 화면에서 무효화하거나 다시 그릴 부분에 해당합니다.
BoundingBoxMode 모드를 제외한 모든 모드에서 경계 상자가 캐시됩니다.
경계 상자가 펜 너비의 영향을 받는 경우 이 너비의 배율은 Renderer 개체의 뷰 변환에 맞게 조정됩니다. 이렇게 하려면 펜 너비에 뷰 변환 행렬식의 제곱근을 곱합니다.
참고
펜 너비를 명시적으로 설정하지 않은 경우 기본값은 53입니다. 올바른 경계 상자를 그리려면 펜 너비에 행렬식의 제곱근을 곱해야 합니다. 경계 상자의 높이와 너비는 각 방향으로 이 거리의 절반만큼 확장됩니다. 예를 들어 펜 너비가 53이고, 행렬식의 제곱근이 50이고, 경계 상자가 (0, 0, 1000, 1000)이라고 가정해 봅니다. 경계 상자에 대한 펜 너비 조정은 각 방향으로 (53*50)/2로 계산되고 오른쪽과 아래쪽은 1만큼 늘어납니다. 따라서 경계 상자가 (-1325, -1325, 2326, 2326)으로 렌더링됩니다.
참고
이 메서드에서 반환하는 경계 Rectangle은 Strokes 컬렉션의 경계 상자 복사본입니다. 이 메서드에서 반환하는 Rectangle을 변경해도 원래 Strokes 컬렉션의 경계 상자는 영향을 받지 않습니다.
예제
이 예제에서는 InkOverlay 개체의 Strokes 컬렉션의 배율을 조정하여 원래 경계 상자의 왼쪽 절반에 맞춥니다. 우선 BoundingBoxMode 열거형의 CurveFit 값을 사용하여 GetBoundingBox 메서드를 호출하여 Strokes 컬렉션의 경계 사각형을 가져와서 경계 상자의 경계를 확인합니다. 그런 다음 원래 너비의 절반인 새 사각형을 만들어 ScaleToRectangle 메서드에 전달합니다.
' Access to the Strokes property returns a copy of the Strokes object.
' This copy must be implicitly (via using statement) or explicitly
' disposed of in order to avoid a memory leak.
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes
Dim bounds As Rectangle = allStrokes.GetBoundingBox(BoundingBoxMode.CurveFit)
Dim halfRectangle As Rectangle = _
New Rectangle(bounds.Left, bounds.Top, bounds.Width / 2, bounds.Height)
allStrokes.ScaleToRectangle(halfRectangle)
End Using
// Access to the Strokes property returns a copy of the Strokes object.
// This copy must be implicitly (via using statement) or explicitly
// disposed of in order to avoid a memory leak.
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
Rectangle bounds = allStrokes.GetBoundingBox(BoundingBoxMode.CurveFit);
Rectangle halfRectangle =
new Rectangle(bounds.Left, bounds.Top, bounds.Width / 2, bounds.Height);
allStrokes.ScaleToRectangle(halfRectangle);
}
플랫폼
Windows Vista
.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
3.0에서 지원