2009-05-25 7 views
0

대답하기 전에 제목을 읽을 때 생각했던 것처럼 쉬운 질문은 아닙니다.WPF : 요소 위치 찾기

T의 ObservableCollection에 바인드 된 ItemsControl과 DataTemplate으로 설명되는 데이터가 있습니다. 지금까지는 고전적인 사례입니다.

새 요소를 추가 할 때 렌더링되는 요소의 창 내부에서 정확한 좌표와 위치를 알아야합니다.

이벤트를 발생시키기 위해 컬렉션에 필요한 시간이 걸리고 WPF는 요소 배치를 위해 모든 레이아웃 메커니즘을 사용한다는 것을 알고 있습니다.

완료되면 알림을 받고 해당 위치를 찾고 싶습니다. 나는 문제는 지금 내가 그 라인을 쳤을 때 나는 WPF 마무리 초 동안 "대기"를 할 경우는, 항상 시기상조 코드

UIElement item = list.ItemContainerGenerator.ContainerFromItem(foo) as UIElement; 
Point point = TranslatePoint(new Point(0.0, 0.0), Window.GetWindow(item)); 

의 그 선을 사용하고, 나는 올바른 위치를 얻을 수 없습니다.

UI 스레드에 대해 "대기 중"보다 나은 솔루션을 찾으려고합니다. 어쩌면 도움을 줄 수 있습니다.

고마워요! Ariel

+0

ChrisF, 편집 해 주셔서 감사합니다. 코드 섹션에서 스크롤을 어떻게 제거 했습니까? – ArielBH

답변

0

아마 UIElement's events 중 하나가 레이아웃 데이터를 사용할 수있을 때 알려줍니다. LayoutUpdate가 유망 해 보인다.

+0

글쎄, 나는 전에 그것을 시도했다. 당신의 대답 후에 나는 나의 코드를 다시 확인했다. 좀 더 싱크화할 필요가 있었지만 도움이되었습니다. 감사합니다. . – ArielBH