프로젝트

일반

사용자정보

개정판 26417dc9

ID26417dc946602d42fbd479259106530c0876333d
상위 2a2e72c2
하위 0880ecdc

백흠경이(가) 11달 전에 추가함

Fix: TriControl의 고정 비율로 크기 조정 기능 추가

Change-Id: Ieca012eeef0d91fe67b47351cca723081b55d957

차이점 보기:

MarkupToPDF/Controls/Shape/TriControl.cs
445 445
                this.EndPoint = tmp;
446 446
          
447 447
                List<Point> Points = this.GetRegularTrianglePoints(this.StartPoint, this.EndPoint);
448
                if (2 == Points.Count())
448
                if (2 == Points.Count)
449 449
                {
450 450
                    this.MidPoint = Points[0];
451 451
                    this.EndPoint = Points[1];
......
473 473
            selected.X += dx;
474 474
            selected.Y += dy;
475 475

  
476
            var vFirstPoint = (this as IPath).PointSet.FindAll(x => x == pt);
477
            int iIndex = 0;
478
            if (vFirstPoint != null && vFirstPoint.Count > 0)
476
            int iIndex = (this as IPath).PointSet.FindIndex(x => x == pt);
477
            if (bAxisLocked)
479 478
            {
480
                iIndex = (this as IPath).PointSet.IndexOf(vFirstPoint.FirstOrDefault());
481
            }
479
                this.StartPoint = selected;
482 480

  
483
            for (int i = 0; i < (this as IPath).PointSet.Count; i++)
481
                int PrevIdx = (iIndex + this.PointSet.Count - 1) % this.PointSet.Count;
482
                int NextIdx = (iIndex + 1) % this.PointSet.Count;
483
                var end = new Point((PointSet[PrevIdx].X + PointSet[NextIdx].X) * 0.5, (PointSet[PrevIdx].Y + PointSet[NextIdx].Y) * 0.5);
484

  
485
                List<Point> Points = this.GetRegularTrianglePoints(selected, end);
486
                if (2 == Points.Count)
487
                {
488
                    PointSet[PrevIdx] = Points[0];
489
                    PointSet[iIndex] = selected;
490
                    PointSet[NextIdx] = Points[1];
491
                }
492
            }
493
            else
484 494
            {
485
                if (i == iIndex)
495
                for (int i = 0; i < (this as IPath).PointSet.Count; i++)
486 496
                {
487
                    if (pt.Equals((this as IPath).PointSet[i]))
497
                    if (i == iIndex)
488 498
                    {
489
                        (this as IPath).PointSet[i] = selected;
499
                        if (pt.Equals((this as IPath).PointSet[i]))
500
                        {
501
                            (this as IPath).PointSet[i] = selected;
502
                        }
490 503
                    }
491 504
                }
492 505
            }
506

  
493 507
            this.UpdateControl();
494 508
        }
495 509

  

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)