사용자가 현재 왼쪽, 위쪽, 오른쪽, 아래쪽, TopLeft, TopRight, 아래쪽 영역에 해당하는 여러 앵커를 클릭하면 마우스 움직임을 기반으로 사각형의 크기를 조절하는 코드가 있습니다. 아래쪽 왼쪽, 아래쪽 오른쪽.사각형의 크기를 조정하고 고정 비율로 스냅
그래서 사용자는 상단 앵커를 클릭하여 끌 수 있으며 마우스가있는 위치를 기반으로 사각형의 상단 좌표를 조정합니다. 다른 모든 앵커와 동일합니다.
실제로 작업에 따라 직사각형의 적절한면을 물리면서 고정 비율 (예 : 2 : 3 또는 5 : 7)을 적용하려고합니다. Left, Top, Right 및 Bottom 앵커에 대해 이렇게 했으므로 쉽습니다. 너비를 조정하면 비율에 따라 자동 크기를 조정해야하며 그 반대의 경우도 마찬가지입니다.
내가 느끼는 어려움은 사용자가 맨 아래 오른쪽 또는 상단 왼쪽 앵커와 같은 모서리를 끌 때입니다. 스냅 할 쪽을 선택하는 방법을 알아야합니다. 나는 마우스 좌표와 사각형의 왼쪽 위, 오른쪽, 아래를 갖는다.
case Anchor.BottomRight:
float maxRight = CursorPosition.X;
float maxBottom = CursorPosition.Y;
float newRight = Bounds.Left + (Bounds.Width * widthRatio);
float newBottom = Bounds.Top + (Bounds.Height * heightRatio);
if (newRight < maxRight)
{
Width = Height * widthRatio;
}
else
{
Height = Width * heightRatio;
}
break;
2의 고정 비율의 예에서 : 다음 widthRatio는 0.666 것와 heightRatio 1.5 일 것 3
는 여기에 내가 해봤 코드입니다.
이 코드는 시간의 절반 만 작동하지만 물론 기본적으로 작업 할 확률은 50/50입니다. 나는 너비 또는 높이를 맞추기위한 적절한 조건을 확인해야한다.
좋아요! 두 경우 모두에 맞지 않으면 어떻게됩니까? 그렇다면 이미 비율이 적절합니까? –
맞습니다. –