在回答之前,这并不像你在阅读标题时想到的那样简单。
我有一个ItemsControl,绑定到一个Ob的ObservableCollection,数据被描述为DataTemplate。到目前为止,这是一个经典案例。
当我添加一个新元素时,我需要知道正在渲染的元素的窗口内的确切坐标和位置。
我意识到Collection需要一段时间来提升事件,WPF使用他所有的布局机制来实际定位元素。
我希望在完成后收到通知并抓住这些位置。 我正在使用那些代码行
UIElement item = list.ItemContainerGenerator.ContainerFromItem(foo) as UIElement;
Point point = TranslatePoint(new Point(0.0, 0.0), Window.GetWindow(item));
现在的问题是,当我点击这些线时,它总是为时过早,如果我“等待”一秒钟并让wPF完成,我确实得到了正确的位置。
我试图找到比“等待”UI-Thread更好的解决方案。 也许你可以帮忙:))
谢谢! 爱丽儿