WPF UI - новая форма, отображаемая в процессе выполнения в исходной форме - PullRequest
1 голос
/ 23 апреля 2011

У меня есть функция загрузки / выгрузки файлов, в которой интерфейс представляет собой пользовательский интерфейс WPF.

Я понял, что для того, чтобы мой пользовательский интерфейс не зависал, мне нужно выполнить загрузку / выгрузку в отдельной ветке.

Но мне также нужно показывать индикатор выполнения при загрузке / загрузке. Я хочу сделать это, показывая новую форму WPF с индикатором выполнения, и во время загрузки / выгрузки исходная форма должна быть отключена для пользователя (пользователь не может нажимать никакие кнопки и т. Д.); пользователь может видеть только индикатор выполнения в новой форме; после заполнения новая форма должна быть закрыта, а исходная форма снова становится активной.

Может кто-нибудь, пожалуйста, помогите мне.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2011

Прежде всего, чтобы показать модальное окно, все, что вам нужно сделать, это

myModalWindow.ShowDialog();

Если вы используете метод Show (), он просто покажет окно. Но если вы используете метод ShowDialog (), все остальные окна в вашем приложении WPF не будут реагировать на пользовательский ввод, пока это окно не закроется.

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

Application.Current.Dispatcher.BeginInvoke(() => myProgressBar.Value = progress);
0 голосов
/ 23 апреля 2011

Вы можете реализовать простой индикатор выполнения.Возьмем это как начало: http://www.codeproject.com/KB/WPF/WpfProgressBar.aspx Вы можете обновить индикатор выполнения с помощью метода обратного вызова из потока загрузчика, чтобы обновлять прогресс каждую секунду или около того.

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