2009-11-12 3 views
4

내 컨트롤에 팝업이 표시되는 시나리오가 있습니다. PlacementTarget, Position 등을 사용하여이 작업을 수행 할 수 있습니다.WPF 첨부 컨트롤로 팝업

내 창 크기를 조정하고 바탕 화면의 다른 곳으로 옮길 때 팝업이 고정 된 상태로 설정되어 컨트롤 세트로 이동하지 않습니다. PlacementTarget. 나는 다른 창문이 초점을 맞출 때 그것을 숨길 수 있었다. 하지만 내 컨트롤을 첨부 할 수 없습니다.

이 문제를 어떻게 해결할 수 있습니까? 다른 컨트롤을 사용할 수 있습니까?

답변

0

나는 Popup에서 파생시키지 않고 어떤 처리를하지 않고도 원하는 동작을 얻지 못할 것이라고 생각합니다.

PlacementTarget이 있다면 따라야 할 창을 얻을 수 있습니다. 맞습니까? 따라서 Popup이 이동을 위해 PlacementTarget이 포함 된 Window를 표시하면 그에 따라 팝업을 조정합니다. Popup은 Window에서 파생되므로 Left 및 Top 속성을 가져야합니다.

4

MS에서 모든 WPF 컨트롤을 보면 컨트롤 외부의 아무 곳이나 클릭하면 ControlTemplate의 팝업이 자동으로 닫힙니다. StaysOpen="False"

가장 쉬운 해킹은 Popup 모습과 일부 픽셀을 추가, 변환기와 제어에 위치 속성을 결합하는 Window을 정의하는 것입니다 : 그것은 그에 대한 책임이 속성의

(예 : 콤보 상자) .

1

완벽한 솔루션은 아니지만 작업 할 이벤트 (이 경우 Resize 또는 LocationChanged)가있는 경우 해당 오프셋 중 하나를 변경하고 다시 변경하여 이동할 수 있습니다. 이 같은

뭔가 :

popup.HorizontalOffset + = 0.01

popup.HorizontalOffset - = 0.01

2

존 Christman (위) 올바른 생각을 가지고있다. 나는 posted an answer 비슷한 맥락에서이 접근 방식을 보여줍니다. 창 이동 또는 크기 조정의 경우를 처리합니다.

관련 문제