Guionardo Furlan

Guionardo Furlan

Software Developer / Engineer

Entre em contato

Desde o Windows 7, um recurso bem interessante de UI é a barra de progresso no ícone da aplicação. Você pode informar o usuário de um processo em andamento sem precisar criar um diálogo a mais para isso.

No .net, temos um pacote que facilita ainda mais as coisas para o programador: o WindowsAPICodePack-Shell.

Na sua aplicação, basta:

  1. Instalar o pacote acima via NuGet
  2. Declarar o namespace Microsoft.WindowsAPICodePack.Taskbar no seu fonte
  3. Utilizar os métodos de TaskbarManager.Instance:

Exemplo:

using System;
using System.Threading;
using System.Windows.Forms;
using Microsoft.WindowsAPICodePack.Taskbar;

namespace AppProgressBar
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)
        {
            TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal);            

            int i = 0;

            while (i < 10)
            {
                TaskbarManager.Instance.SetProgressValue(i, 10);                
                Thread.Sleep(500);
                i++;
            }
            TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.NoProgress);            
        }
    }
}