У меня есть приложение WPF, которое работает как XBAP в браузере. На нескольких страницах все элементы управления динамически создаются в зависимости от того, что пользователь выбирает. Из-за этого может показаться, что приложение ничего не делает, пока все элементы управления не будут загружены. Я бы хотел, чтобы перед вами показывался какой-то индикатор занятости, чтобы показать пользователю, что элементы управления загружаются, не нужно анимировать, хотя было бы неплохо, если бы это было так. Я просмотрел индикатор занятости telerik, но это не работает, поскольку он действительно предназначен для получения данных для одного элемента управления и не отображается до тех пор, пока элементы управления не будут загружены, что победит цель.WPF Лучший способ отображения индикатора занятости при динамическом создании страницы
Я думал о том, чтобы отображать накладку или что-то подобное, во-первых, с логотипом загрузки, затем загружать страницу позади этого и скрывать наложение при загрузке элементов управления. Мне было интересно, если это лучший способ обойти это или, если есть лучший способ?
Нет лучшего способа, поскольку все операции пользовательского интерфейса должны возникать в потоке пользовательского интерфейса. Тем не менее я беспокоюсь о вашем заявлении 'На нескольких страницах все элементы управления динамически создаются в зависимости от того, что пользователь выбирает'. Похоже, что вы не применили правильные шаблоны (MVVM) и создаете все эти элементы пользовательского интерфейса в коде, что было бы плохо, и потенциально может вызвать все эти проблемы с производительностью. показать код и, возможно, мы сможем помочь вам в этом. –
К сожалению, мне не разрешено публиковать код, но в основном страница может содержать множество текстовых полей, списков, выпадающих списков, элементов управления пользователя и т. Д., Которые пользователь может отображать или скрывать на странице в зависимости от того, что им нужно, настраиваемый. Это загрузка этих элементов управления, которые могут занять время. Это MVVM, но я унаследовал код, поэтому, возможно, есть что-то еще, что можно было бы сделать. Привет всем в любом случае придется посмотреть на это и наложение тогда. – knappster
@knappster Как и то, что сказал HighCode, не нужно «загружать» настраиваемые элементы управления. Для достижения этой цели существует несколько методов. Вы можете использовать DataTriggers для отображения/скрытия определенных элементов управления на основе значения свойства, вы можете абстрагировать свои наборы элементов управления в UserControls и использовать DataTemplate (любой DataTemplateSelector) для управления использованием UserControl. В любом случае, я постараюсь предложить ответ для вашей реальной проблемы (песочные часы для мыши ниже) – failedprogramming