일부 드로잉 응용 프로그램을 만들려고하고 있는데 "선택 모드"에서 이상한 결과가 나타납니다. Rectangle을 그리고 "select it"RenderSize가 적절한 Size를 반환하지만 Line이 선택되면 RenderSize는 Width를 Line.X2로 설정하고 Height를 Line.Y2로 설정 한 Size를 반환합니다. 예 : X1 = 50, Y1 = 50, X2 = 130, Y2 = 90에서 끝나는 선은 Width = 130 및 Height = 90 인 크기를 반환합니다. 선택 사항에 UIElement 유형의 요소가 포함되어 있으므로 실제로는 신경 쓰지 않아야합니다.) 내가 할 수있는대로 제 선택 모드를 일반화하기 위해 어떤 모양이 선택되고 사용자가 선택한 모양을 움직이는 동안 테두리 상자를 그려야합니다.WPF - UIElement.RenderSize가 선 모양에 맞지 않습니다.
Google에 문제가 있지만 아무 관련이 없으므로 도움이 될 수 있습니다. Line이 점을 명시 적으로 설정하는 동안 Rectangle의 위치는 Canvas에 의해 설정 되었기 때문에입니까?
, 일반적으로 적당한 크기 (또는 무언가를 검색 할 수있는 방법이있다 그것과 같은) UIElement의 테두리 상자를 표시 할 수 있습니까? Line (또는 다른 문제가있는 다른 Shape)에 대한 특수 테스트 및 처리 방법에 대한 아이디어가 마음에 들지 않습니다. – grapkulec
0,0을 X1, Y1로 사용하지 않는 특별한 이유가 있습니까? 이 경우 정확한 바운딩 박스를 사용하고 Canvas.Top/Canvas.Left를 사용하면 Rectangle 객체를 배치하는 것과 같은 방법으로 Canvas.Top/Canvas.Left를 사용할 수 있습니다. – micahtan
그러면 0,0을 선의 점 중 하나로서 사용하고 그 점의 좌표를 변경하는 대신 Canvas.SetLeft/Canvas.SetTop 메쏘드와 두 번째 점으로 선을 이동 하시겠습니까? 실제로 그게 효과가 있을지도 몰라 :)하지만 여전히 더 직관적이거나 우아한 방법이 있어야합니다. – grapkulec