이미지 포스트 프로세싱을위한 간단한 WPF UI를 개발 중입니다.WPF - 캔버스에서 사용할 간단한 컨트롤 만들기
내가 드래그 WPF 컨트롤을 만들 싶습니다은 다음과 같이 대략 볼 것이다 캔버스에 사용되는 :
모두 끝이 타원을 드래그 될 점과 선은 그들을 따를 것입니다 합류 종점이 이동하면
이제는 이러한 요소를 Canvas에 추가 한 다음 필요한 이벤트 처리를 구현하여 요소를 끌 때 이동되도록 구현하는 방법을 알고 있습니다. 하지만 다른 유형의 드래그 가능한 컨트롤을 추가하고 싶다면 유지하기가 어렵습니다.
내가하고 싶은 것은 FrameworkElement 또는 UIElement에서 파생 된 자체 클래스 (DragLine)로 모든 처리를 격리하는 것입니다. 이 드래그 가능한 UI 요소를 Canvas에 추가하려면 DragLine 인스턴스를 만들고 Canvas.Children에 추가하십시오. 나머지 프로그램은 DragLine 인스턴스 만 볼 수 있으며 새 요소를 그리는 데 사용되는 선이나 타원에 대해 걱정할 필요가 없습니다.
직접 모든 UI 요소를 직접 그려야하는 대신 Ellipse와 같은 표준 모양을 사용하여 선 종점을 구현하고 싶습니다. 이벤트 처리를 다시 사용하고 이미 구현 된 이러한 모양을 테스트해야하기 때문입니다.
질문 : FrameworkElement에서이 문제를 해결할 올바른 방법을 파생시키고 있습니까? 선과 끝점 타원은 내 새로운 수업에서의 시각적이며 논리적 인 자녀 일뿐입니다.
FrameworkElement에서 파생되는 것이 권장되는 방법이 아닌 경우 어떻게 대신이 작업을 수행할까요?
그렇다면 새로운 클래스가 캔버스에서만 사용되며 그리드 또는 스택 패널과 같은 것들에 대해서는 잘 작동하지 않아도되므로 구현을 단순화 할 수있는 방법이 있습니까?
FrameworkElement에서 파생되는 것은 어떻게 처리 할 것인가입니다. WPF 세계에서 그다지 의미가 없습니다. –
Measure/ArrangeOverrides를 구현하는 것은이 새로운 클래스가 Canvas에서만 사용된다는 점에서 superfluos와 같은 것처럼 보입니다. 이것들을 단순화하는 것에 대한 조언? 나는 이것들을 오버라이드하지 않으려 고 노력했는데 결과는 렌더링 된 시각적 인 아이들이 없다는 것이었다. – Nurpax