점 편집을 통해 향상된 사용자 정의 도형(Shape) 지원 도입
페이지 정보
작성자 GrapeCity 작성일 2021-04-09 16:21 조회 1,948회 댓글 0건본문
관련링크
점 편집 시작하기
점 편집을 위한 옵션을 활성화하려면 먼저 "EnhancedShapeEngine"을 "True"로 설정해야 합니다. “기능”에서 이 속성을 찾을 수 있습니다.
향상된 셰이프 엔진을 활성화한 후에는 점을 편집할 수 있습니다. "삽입"으로 이동하여 셰이프를 선택합니다. 이 예시를 위해 정사각형을 선택하겠습니다.
디자이너에서 셰이프를 선택해 배치한 후에 셰이프 형식으로 이동해 셰이프가 선택되는 동안 점 편집을 선택합니다.
셰이프를 배치하고 나서 모서리 점을 마우스 오른쪽 버튼으로 클릭하면 옵션이 표시됩니다.
매끄러운 점을 클릭하면 다음과 같은 셰이프 조작이 표시됩니다.
점과 점 사이를 마우스 오른쪽 버튼으로 클릭하여 선을 편집할 수도 있습니다.
다음 그림에서 보시는 것과 같이 각 선은 굽은 모양입니다.
점을 추가할 수도 있습니다.
이 그림에서는 정사각형을 선택하고 상단 왼쪽 점 편집과 오른쪽 점 편집 사이에 점을 추가하였습니다.
점을 제거하려면 Ctrl 키와 마우스 오른쪽 버튼을 함께 누르거나 점을 마우스 오른쪽 버튼으로 클릭하고 “제거”를 선택하여 점을 삭제할 수 있습니다.
C# 및 VB에서 점 편집을 사용하는 방법
이제 C# 및 VB를 사용해 API를 통해 셰이프를 추가하고 점을 지정하는 작업을 간단히 살펴보겠습니다.
먼저 향상된 셰이프 엔진을 활성화한 후 별을 추가하겠습니다.
C#
// Enable EnhancedShapeEngine fpSpread1.Features.EnhancedShapeEngine = true; // Add FivePointedStar Shape fpSpread1.AsWorkbook().ActiveSheet.Shapes.AddShape(GrapeCity.Spreadsheet.Drawing.AutoShapeType.FivePointedStar, 100, 100, 100, 100);
VB
' Enable EnhancedShapeEngine FpSpread1.Features.EnhancedShapeEngine = True ' Add FivePointedStar Shape FpSpread1.AsWorkbook().ActiveSheet.Shapes.AddShape(GrapeCity.Spreadsheet.Drawing.AutoShapeType.FivePointedStar, 100, 100, 100, 100)
이어서 별의 하단 오른쪽 끝점에 노드를 삽입해 보겠습니다.
C#
fpSpread1.AsWorkbook().ActiveSheet.Shapes[0].Nodes.Insert(6, GrapeCity.Spreadsheet.Drawing.SegmentType.Curve, GrapeCity.Spreadsheet.Drawing.EditingType.Corner, 50, 100, 50, 130, 100, 100);
VB
fpSpread1.AsWorkbook().ActiveSheet.Shapes(0).Nodes.Insert(6, GrapeCity.Spreadsheet.Drawing.SegmentType.Curve, GrapeCity.Spreadsheet.Drawing.EditingType.Corner, 50, 100, 50, 130, 100, 100)
그런 다음, 삽입한 노드를 다음과 같은 코드를 사용해 제거할 수 있습니다.
C#
fpSpread1.AsWorkbook().ActiveSheet.Shapes[0].Nodes.Delete(6);
VB
fpSpread1.AsWorkbook().ActiveSheet.Shapes(0).Nodes.Delete(1)
자유 폼 빌더를 사용하려면 다음과 같이 하면 됩니다.
C#
IFreeFormBuilder freeform = fpSpread1.AsWorkbook().ActiveSheet.Shapes.BuildFreeform(EditingType.Corner, 160, 10); freeform.AddNodes(SegmentType.Curve, EditingType.Corner, 180, 30, 200, 50, 250, 100); freeform.AddNodes(SegmentType.Curve, EditingType.Auto, 280, 10); freeform.AddNodes(SegmentType.Curve, EditingType.Auto, 280, 200); freeform.AddNodes(SegmentType.Line, EditingType.Auto, 160, 10); freeform.ConvertToShape();
VB
Dim freeform As IFreeFormBuilder = fpSpread1.AsWorkbook().ActiveSheet.Shapes.BuildFreeform(EditingType.Corner, 160, 10) freeform.AddNodes(SegmentType.Curve, EditingType.Corner, 180, 30, 200, 50, 250, 100) freeform.AddNodes(SegmentType.Curve, EditingType.Auto, 280, 10) freeform.AddNodes(SegmentType.Curve, EditingType.Auto, 280, 200) freeform.AddNodes(SegmentType.Line, EditingType.Auto, 160, 10) freeform.ConvertToShape()
댓글목록
등록된 댓글이 없습니다.