Прежде чем ответить, это не такой простой вопрос, как вы могли подумать, когда читали заголовок.
У меня есть ItemsControl, который связан с ObservableCollection T и данные описываются как DataTemplate. Пока что это классический случай.
Когда я добавляю новый элемент, мне нужно знать точную координату и позиции внутри окна визуализируемого элемента.
Я понимаю, что есть время, необходимое Коллекции, чтобы вызвать событие, и WPF использует весь свой механизм компоновки для фактического позиционирования элемента.
Я хочу получать уведомления, когда это будет сделано, и захватить эти места.
Я использую эти строки кода
UIElement item = list.ItemContainerGenerator.ContainerFromItem(foo) as UIElement;
Point point = TranslatePoint(new Point(0.0, 0.0), Window.GetWindow(item));
Проблема теперь в том, что когда я нажимаю эти строки, это всегда преждевременно. Если я «подожду» секунду и позволю wPF закончить, я получу правильное местоположение.
Я пытаюсь найти лучшие решения, чем "ожидание" UI-Thread.
Может быть, вы можете помочь:)
Спасибо!
Ariel