Popup
컨트롤은 기본적으로 왼쪽 정렬됩니다. 왼쪽 가장자리가 부모 가장자리와 정렬됩니다.팝업 위치/배치를 동적으로 설정하십시오.
컨트롤의 오른쪽 가장자리가 컨테이너의 오른쪽 가장자리에 정렬되도록 컨트롤을 배치하고 싶습니다.
동적으로 데이터를 바인딩하고 팝업이 얼마나 커질 지 모르기 때문에 동적 인 것으로 지정합니다.
은 내가Child
의 폭을 얻고
HorizontalOffset
로 설정하는
Opened
,
SizeChanged
및
Loaded
이벤트와 함께 연주 시도했지만 타이밍 문제가 될 것 같습니다. 기본적으로 그것은 처음에는 컨트롤이로드 된 후 잘 동작하지 않습니다 (
HorizontalOffset
이 0으로 설정 됨).
이것은 버그입니까? 내가 잘못하고있는거야?
편집 나는 그것을 작동시켰다. 타이밍 문제가있는 것 같습니다. 나는 Opened
이벤트를 연결하고 비동기 적으로 Dispatcher
사용하여 HorizontalOffset
을 설정하면, 그것은 작동 :(지금 내가 멍청한 짓을하고 있었던 것을 깨닫게 2 편집이. 나는의 Popup
를 원
private static void OnPopupOpened(object sender, System.EventArgs e)
{
var popup = (Popup)sender;
popup.Dispatcher.BeginInvoke(() => popup.HorizontalOffset = -popup.ActualWidth);
}
ComboBox
을 오른쪽 정렬해야합니다. ArrangePopup
개인 메서드 호출에서 다시 초기화 된 것을 볼 수 없었습니다. ComboBox
에서 상속을 시도했지만 배치 기능을 무시하려고했으나 여전히 보이지 않기 때문에 잘못된 작업을해야합니다. 나는 ov이지만 일한다. 해당 메서드를 오류로 호출 ArrangePopup
건배.