2011-08-17 4 views
3

Silverlight에서 사용자 정의 컨트롤을 만들었으므로 이제 원하는 위치에 여러 번 다시 사용할 수 있습니다. 이 컨트롤은 또한 팝업을 사용합니다. 팝업이 열리면 프로그래밍 방식으로 위치를 설정하여 컨트롤에 고정 된 것처럼 보입니다. 그러나이 팝업이 이미 표시되고 사용자가 Internet Explorer 창의 크기를 변경하면 페이지의 컨텍스트가 이동되고 팝업이 이동하지 않습니다. [분명히.] 그래서 그것은 더 이상 통제에 정박 된 것처럼 보이지 않습니다. 그것을 고치는 방법? 어떤 이벤트를 처리할까요?사용자가 창 크기를 조절할 때 알아야 할 사항

사용자가 창 크기를 변경하면 시작되는 이벤트가있을 것으로 예상됩니다. 또는 소유 컨트롤의 위치가 변경되었을 때 알릴 수있는 이벤트가 더 좋으므로 컨트롤의 새 위치를 알 수 있습니다 (팝업 좌표를 계산하려면 알아야 함). 이후 내가 그것을 사용자 정의 컨트롤로 작동하려면 컨트롤 자체에 대한 로컬 이벤트를 선호합니다 (즉, 모든 글로벌 페이지/창 작업을 망칠 필요없이). 올바른 이벤트를 찾도록 도와주세요.

업데이트 : 소유 컨트롤이 언제 옮겨 졌는지 알아야합니다. 왜냐하면 그것이 이동 된 다른 이유가있을 수도 있기 때문입니다 (위에서 언급 한 창의 크기 변경 제외).

답변

1

나는 SizeChanged 이벤트를 찾고 있다고 생각합니다. 팝업 메뉴의 크기를 조정할시기를 구독 할 수 있습니다.

다른 컨트롤로 인해 컨트롤이 이동 한 경우에도 도움이되지 않을 수 있습니다. 크기가 조정되지 않을 수도 있으므로 새로운 위치에 배치하십시오.

문제가있는 경우 LayoutUpdated을 사용하여 요소 내부에서 변경된 사항이 있는지 확인할 수 있습니다. 이를 위해서는 RootVisual 또는 요소 위에있는 핸들러를 연결해야합니다.

+0

나는 통제권이 옮겨 졌을 때 정말로 알 필요가있다. 전체 창 크기 조정은 컨트롤이 이동되는 이유 중 하나 일뿐입니다. –

+0

@Al - Gotcha, 그러면 LayoutUpdated를 사용해야 할 것입니다. – CodeNaked

+0

OK, 레이아웃 업데이트입니다. 감사. –

관련 문제