wpf -uielement.rendersize는 라인 모양에서 작동하지 않습니다
-
06-07-2019 - |
문제
나는 드로잉 응용 프로그램을 만들려고 노력하고 있으며 "선택 모드"에서 이상한 결과를 얻습니다. 직사각형을 그리고 "선택"하면 렌더 크기는 적절한 크기를 반환하지만 선이 선택되면 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>
제휴하지 않습니다 StackOverflow