standart WPF TabControl을 향상시키고 있습니다. 도킹 해제 기능을 추가하고 싶습니다. 사용자가 TabControl 밖에있는 페이지를 드래그하여이 페이지를 창에서 드래그 해제합니다. 이 컨트롤에 두 개의 이벤트가 필요합니다. PageDragStart (페이지가 바깥쪽으로 끌 때 발생) 및 PageDragEnd (페이지가 바깥으로 떨어질 때 발생)컨트롤 외부에 놓기
첫 번째 이벤트에는 아무런 문제가 없습니다.
하지만 두 번째 ... OnDrop은 항목이 tabcontol 컨테이너 외부로 떨어 졌기 때문에 호출하지 않습니다. 어떻게 떨어 졌는지 어떻게 알 수 있습니까?
P. 나는 보편적 인 컨트롤을 원합니다 (도킹 해제 기능이 연결되어서는 안되며 tabcontrol이 배치 된 것과 같이 하드 코딩되어 있어야합니다.)
음 ... 몇 가지 이유로 답변을 추가 할 수 없습니다. 질문 : 드래그하려는 컨트롤에 AllowDrop을 설정 했습니까? –
Windows 양식에서이 트릭을했습니다. OnMouseUp은 TabControl 외부에서도 호출하고있었습니다.불행히도 WPF에서이 트릭이 작동하지 않습니다. – xSeder
제 컨트롤이 다른 컨트롤에 대해 알지 못하는 블랙 박스가됩니다. 물론 응용 프로그램에서 사용할 때 모든 surrouding 컨트롤에는 AllowDrop이 true로 설정되어 있습니다. 문제는 OnDrop (또는 OnMouseUp - 중요하지 않음)이 소스가 아니라 TARGET 컨트롤에서 호출된다는 것입니다. 하지만 나는 그것이 소스에서 (이상적으로 양쪽에서 호출되기를 바랍니다) – xSeder