Пользовательский интерфейс не обновляется, пока вы связываете поток пользовательского интерфейса, вам необходимо вернуть элемент управления, чтобы он мог отображаться.
Вы должны попытаться переместить длительные операции в фоновый поток, если это возможно- скажем, используя BackgroundWorker
- и обновляйте пользовательский интерфейс так часто.Это должно привести к гораздо более отзывчивому пользовательскому интерфейсу.
Если вам действительно нужно проделать большую работу в потоке пользовательского интерфейса (например, вы добавляете большое количество элементов управления, которые медленнорендер) вам придется разбить его на управляемые части.Вы можете подождать, пока событие CompositionTarget.Rendering
узнает, когда пользовательский интерфейс отобразился, и вы можете продолжить.Но гораздо лучше перенести работу в фоновый поток, если вы можете.