Показывать индикатор выполнения при отправке страниц на принтер (WPF) - PullRequest
3 голосов
/ 15 сентября 2010

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

1 Ответ

0 голосов
/ 18 января 2011

Я не уверен точно, где находится ваш код печати или где вы хотите индикатор выполнения, но я недавно сделал нечто похожее на это. Это будет в VB.net.

Прежде всего, создайте новый индикатор выполнения в том же классе, что и код, который вы используете для отправки страницы на принтер. Затем мы воспользуемся «нисходящим» порядком в блоке кода, чтобы изменить индикатор выполнения.

Значение индикатора выполнения должно быть установлено на «0» по умолчанию. Теперь в коде для отправки страницы на принтер вы собираетесь увеличить значение индикатора выполнения (например, с помощью кода «MyProgressBar.Value = MyProgressBar.Value + 1»). Поместите этот код между каждой строкой кода, для которого вы хотите показать прогресс.

Однако я бы изменил часть кода «+ 1» на другое значение, чтобы ваш индикатор выполнения прогрессировал одинаково после каждого шага. Если у вас есть три строки кода, используйте «+ 33» (100 \ 3), четыре строки - «+ 25» и т. Д.

Наконец, в конце кода установите «MyProgressBar.Value = 100»

Однако это работает, только если у вас есть доступ к коду длиной более одной строки. Для одной строки кода я не уверен, как это работает, если только вы не можете добраться до блока кода, на который указывает эта строка.

Если вам нужно использовать код из другого класса, вам может потребоваться сделать что-то вроде ...

Dim MyWindowWhereProgressIs As New MyWindowWhereProgressIs

А потом, каждый раз, когда вам нужно изменить значение, попробуйте ...

MyWindowWhereProgressIs.MyProgressBar.Value = MyWindowWhereProgressIs.MyProgressBar.Value + 1

Я не совсем уверен, будут ли работать эти последние две строки кода, так как я сейчас далеко от Visual Studio, но это стоит попробовать.

...