WPF의 캔버스에서 2 개의 컨트롤이 서로 겹치는지 어떻게 확인할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1554116

문제

사용자가 화면에서 컨트롤을 드래그 할 수있는 디자이너를 작성하고 있습니다. 제어 제어를 드래그하는 동안 컨트롤이 다른 컨트롤을 겹치는 경우 감지하는 가장 좋은 방법은 무엇입니까?

프레임 워크 레코어의 차원을 얻고 다른 요소의 크기를 계속 확인해야합니까?

감사. 엘리

도움이 되었습니까?

해결책

요소가 항상 직사각형이라면 요소의 차원 (FrameworkElement.actubled FrameworkElement.actualHeight) 및 위치 (canvas.top, canvas.bottom, canvas.left, canvas.right)는 항상 직사각형 인 경우 충분할 것입니다. 이 경우 두 개의 사각형이 겹치면 쉽게 계산할 수 있습니다. 요소가 더 복잡한 모양 일 수 있다면 털이 있습니다. WPF에서 두 개의 시각적 인스턴스의 교차로를 테스트 할 수 있는지 전혀 모릅니다.

어쩌면 우리는 사용할 수 있습니다 히트 테스트? 이 접근법을 사용하면 적어도 특정한 경우 테스트 할 수 있습니다. 가리키다 또는 기하학 Certian Visual과 교차합니다. 따라서 두 번째 비주얼의 한계와 다소 밀접하게 일치하는 지오메트리 또는 점 목록을 정의해야합니다.

다른 팁

당신은 사용할 수 있습니다 Rect.IntersectsWith 방법

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top