在循环完成之前,不会显示在for循环中添加Canvas子项

时间:2012-01-11 21:58:09

标签: wpf for-loop children

tittle说的是,我有一个很长的循环,在这个循环中我根据一些条件将对象添加到Canvas中。我希望对象在添加时显示,但是在循环完成后显示它们?有谁知道为什么以及如何解决这个问题?

:textbox.text属性也不会更新。

1 个答案:

答案 0 :(得分:0)

当您绑定UI线程时,UI不会更新,您需要返回控件以允许它进行渲染。

如果可能的话,您应该尝试将长时间运行的操作移动到后台线程 - 例如使用BackgroundWorker - 并且经常更新UI。这应该会产生响应更快的UI。

如果真的需要在UI线程上做一些冗长的工作(例如,你要添加大量渲染速度慢的控件),你将不得不打破它变成可管理的部分。您可以等待CompositionTarget.Rendering事件知道UI已呈现的时间,然后您可以继续。但是如果可以的话,将工作卸载到后台线程要好得多。