Предотвратить замерзание при реконструкции комплекса WPF UI? - PullRequest
7 голосов
/ 23 сентября 2011

ОК, давайте посмотрим правде в глаза, во время рендеринга и прохождения макета пользовательский интерфейс WPF зависнет ....

Есть ли выход из этого?

Кто-то говорил о сериализации и десериализации XAML, но делает этодействительно работает?Все, что я вижу, это мгновенное упущение и замороженное окно для сложных пользовательских интерфейсов, которые десериализованы.

Смогу ли я когда-нибудь добиться быстрой загрузки пользовательского интерфейса?

PS Я не являюсьговорить о загрузке данных представления в фоновом потоке и прочем.Это в любом случае норма в наши дни.Но есть ли ЛЮБОЙ (это должно звучать отчаянно) способ не создавать зависшее окно для сложных пользовательских интерфейсов?Под сложным я подразумеваю тяжелые стили, глубоко иерархические шаблоны, не виртуализированные панели и т. Д.

1 Ответ

2 голосов
/ 14 ноября 2011

Учитывая фабулу вашего вопроса, вы ожидаете, по крайней мере, ответа от Роба Рельея (не уверен, что он все еще там).Мне бы хотелось, чтобы у нас было свойство PreventFreezing, которое кто-то небрежно установил в false.Но мы неЯ думаю, что единственный способ взглянуть на проблему - это рассмотреть ее в каждом конкретном случае.Некоторые фреймворки, например Prism и подобные, не предназначены для поддержки плавного выполнения, и это четко указано в описании.

После 5 с лишним лет работы с WPF / SL я все еще чувствую, что мы все работаем с прототипом, хорошо спроектированным, но все же прототипом.Многие вещи спроектированы красиво, но они никогда не уложились в сроки исполнения.

Я думаю, что «добавление фьючерсов без особой заботы о чем-либо другом» - очень естественная стадия в жизненном цикле любого большогоprobject.На этом этапе количество фьючерсов растет в геометрической прогрессии, так же как и технический долг.Это все хорошо, если за этим последует техническое погашение долга, чего, по-видимому, не было с обзором производительности WPF -ie, обзором юзабилити синтаксиса и многим другим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...