표준 WPF ComboBox
처럼 보이는 사용자 지정 컨트롤을 만들고 싶습니다. 팝업 대신 ItemsPresenter
대신에 다른 사용자 지정 컨트롤이 있습니다. 따라서 System.Windows.Controls.Control
에서 파생 된 새 클래스를 만들고 IsDropDownOpen
속성을 추가하고 실제로 ComboBox
스타일의 복사본 인 스타일을 만들었습니다 (기본 아이디어는 Popup.IsOpen
및 ToggleButton.IsPressed
속성이 컨트롤의 IsDropDownOpen
속성에 바인딩 됨).WPF 콤보 상자 형 사용자 지정 컨트롤
컨트롤 외부를 클릭 할 때 Popup
이 닫히지 않는 것이 문제입니다.
ComboBox
클래스에서 확인해 보니
ComboBox
이 마우스 캡처를 잃을 때
IsDropDownOpen
속성을 업데이트 할 몇 가지 논리를 사용하는 것을 알아 냈다. 그러나이 코드는 내부 클래스를 사용합니다. 사용자가 컨트롤 외부를 클릭하고
Popup
을 닫는 지 확인하는 다른 방법이 있습니까?
UPD : 나는 게시 할 파일을 첨부 할 수있는 방법을 찾을 수 없었기 때문에이 샘플 프로젝트 here
이 콤보 상자처럼 보이는 사용자 정의 컨트롤이지만 팝업에서 트 리뷰가 있습니다을 업로드했습니다. 팝업을 열고 컨트롤 바깥을 클릭하면 자동으로 닫히지 만 팝업을 열면 'Item2'를 확장 한 다음 팝업 바깥 쪽을 클릭하면 닫히지 않습니다. 문제는이를 해결하는 방법입니다.
당신이 몇 가지 코드를 게시 할 수 있습니까? – RQDQ
@RQDQ : 정확히 무엇이 필요합니까? 제어 템플릿? 내가 말했듯이 기본 콤보 박스 템플릿과 동일하지만 ItemsPresenter 대신 다른 컨트롤이 있습니다. – adogg
아이디어는 이미 가지고있는 것을보고 싶습니다. 그래서 우리는 단지 당신을 돕기 위해 바퀴를 재발 명할 필요가 없습니다. – RQDQ