문제

나는 드로잉 응용 프로그램을 만들려고 노력하고 있으며 "선택 모드"에서 이상한 결과를 얻습니다. 직사각형을 그리고 "선택"하면 렌더 크기는 적절한 크기를 반환하지만 선이 선택되면 rendersize 크기는 rine.x2로 설정된 크기를 반환하고 높이는 line.y2로 설정됩니다. 예 : 라인은 x1 = 50, y1 = 50에서 시작하고 x2 = 130, y2 = 90에서 끝나고 rendersize 크기는 너비 = 130 및 높이 = 90으로 끝납니다. 내 선택은 유형의 요소를 포함하므로 모릅니다 (모릅니다). 그리고 정말로 신경 쓰지 않아야합니다.) 선택 모드를 가능한 한 일반으로 만들기 위해 어떤 모양이 선택되었는지, 사용자가 선택한 모양을 이동하는 동안 경계 상자를 그려고 싶습니다.

Google에게 문제를 시도했지만 관련성이 없다는 것을 알았으므로 도움이 될 수 있습니다. 사각형이 캔버스에 의해 설정된 위치에 있고 라인이 점점 지점을 명시 적으로 설정했기 때문입니까?

도움이 되었습니까?

해결책

130x90을 얻는 이유는 인용 한 이유 때문입니다. WPF의 사각형은 위치가 없으며 높이/너비 일 뿐이므로 두 크기 값이 동일합니다.

그러나 점에 의해 정의 된 선은 반드시 원점에서 필요한 오프셋을 정의하므로 오프셋이 경계 상자에 포함됩니다.

또한 라인 객체와 함께 Canvas.top/left 속성을 계속 사용하여 더 이상 상쇄 할 수 있습니다.

  <Canvas>
    <Line X1="50" X2="130" Y1="50" Y2="90" StrokeThickness="1" Stroke="Blue" Canvas.Top="50" Canvas.Left="30"></Line>
  </Canvas>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top