ShapeElement.DoFoldToShape 메서드

연결선 도형의 경계 터치 합니다 위치 하는 지점을 계산 합니다.사각형이 아닌 도형 정의 재정의 합니다.

네임스페이스:  Microsoft.VisualStudio.Modeling.Diagrams
어셈블리:  Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0(Microsoft.VisualStudio.Modeling.Sdk.Diagrams.11.0.dll)

구문

‘선언
Public Overridable Function DoFoldToShape ( _
    potentialPoint As PointD, _
    vectorEndpoint As PointD _
) As PointD
public virtual PointD DoFoldToShape(
    PointD potentialPoint,
    PointD vectorEndpoint
)

매개 변수

  • vectorEndpoint
    형식: Microsoft.VisualStudio.Modeling.Diagrams.PointD
    연결선의 방향입니다.다른 지점에 비례하여 그 줄은 potentialPoint.가로 연결선이 대 한 Y 좌표 항상 0, 되 고 세로 연결선에 대 한 X 좌표를 항상입니다 0입니다.임의의 값 가진 기호를 셰이프의 가운데의 방향을 나타내고 다른 좌표가 있는 potentialPoint.직선 연결선, X의 비율에 대 한 Y 기울기 줄의 설명 및 값은 임의입니다.

반환 값

형식: Microsoft.VisualStudio.Modeling.Diagrams.PointD
커넥터를 종료 해야 하는 지점입니다.

설명

이 메서드는 커넥터를 종료 셰이프의 경계 지점을 결정 합니다 호출 됩니다.기본적으로 사각형 모양의 점 도형의 테두리 상자에 됩니다.남겨 그는 특이 한 형상, 아이콘 사각형 없는 아이콘 셰이프 예를 들어 있는 클래스를 정의 하는 경우 다음이 기본 동작을 간격이 실제 가장자리를 셰이프 사이의 연결선 수도 있습니다.도형에서 연결선을 종료 해야 가장자리에 원래 연결점을 계산 하려면이 메서드를 재정의할 수 있습니다.

모양에 맞게 접기

예제

이 예제에서는 작성자 아이콘 모양 DSL 정의에 지정 된 하 고는 타원형 개요 그림을 가진 아이콘을 제공 합니다.기본적으로 테두리 상자에 커넥터를 종료 하지만 종료 포인트는 중간에 측면 되지 않습니다 때 불만족 보입니다.따라서 DoFoldToShape 커넥터 타원이 교차 하는 계산 해야 합니다.다행히입니다 원에 대해이 작업을 수행 하는 유틸리티 함수: 우리가 우리의 고등학교 기 책을 찾이 필요는 없습니다.우리는 타원에 대 한 입력 배 곱하면 고 출력 같은 계수로 나누어 사용할 유틸리티 함수를 적용할 수도 있습니다.

public partial class MyEllipticalIconShape
{
  public override PointD DoFoldToShape(PointD potentialPoint, PointD vectorEndpoint)
  {
    double width = this.Bounds.Width;
    double height = this.Bounds.Height;
    double k = width / height; // transform from ellipse to circle
    // This utility method folds to a circle. But we have an ellipse, so
    // we adjust the Y values of the inputs:
    PointD result = ShapeGeometry.SnapToCircle(
        new PointD(width / 2, width / 2), // center, relative to shape
        width / 2, // radius of circle
        new PointD(vectorEndpoint.X, vectorEndpoint.Y * k),
        new PointD(potentialPoint.X, potentialPoint.Y * k));
    // Transform the circular result back to the ellipse:
    return new PointD(result.X, result.Y / k); 
 }
}

.NET Framework 보안

  • 직접 실행 호출자의 경우 완전히 신뢰합니다. 이 멤버는 부분적으로 신뢰할 수 있는 코드에서 사용할 수 없습니다. 자세한 내용은 부분 신뢰 코드에서 라이브러리 사용을 참조하십시오.

참고 항목

참조

ShapeElement 클래스

Microsoft.VisualStudio.Modeling.Diagrams 네임스페이스