Windows Forms – Indicador de Progreso en la Barra de Tareas

Una de las cosas que realmente destacan en una aplicación que al realizar una tarea demore un tiempo considerable, es que se pueda visualizar el progreso de la tarea en el icono de la aplicación en la barra de tareas. Esta funcionalidad fue introducida en Windows 7 y se mantiene en Windows 8.

Ejemplos de esta funcionalidad pueden ser el progreso al momento de grabar un disco, el progreso de una instalación, etc.

Adicionalmente al progreso visual en la barra de tareas, Windows puede mostrar diversos estados los cuales añaden información visual al usuario del estado de la tarea en progreso.

Estados de progreso

La barra de tareas puede desde Windows 7 mostrar los siguientes estados:

  • NoProgress (sin progreso): No muestra información.
  • Normal: Muestra el progreso como una barra de color verde.
  • Paused (en espera): Muestra el progreso como una barra de color amarillo.
  • Error: Muestra el progreso como una barra de color rojo.
  • Indeterminate (indeterminado): Muestra el progreso como una marquesina.

estados barra de progreso

Configuración del Proyecto

Para este ejemplo se usará un proyecto de Windows Forms en C#.

El primer paso es agregar un paquete Nugget llamado Windows API Code Pack.

Una vez agregado el paquete, se puede añadir la siguiente referencia.

 

using Microsoft.WindowsAPICodePack.Taskbar

Crear una variable del tipo TaskBarManager.

private TaskbarManager windowTaskbar = TaskbarManager.Instance;

En el constructor del formulario se establece la identificación de la aplicación.

windowTaskbar.ApplicationId = "IndicadorDeProgreso";

Si se desea establecer un valor por defecto para el progreso en la barra de tareas, este debe realizarse después de haberse cargado el formulario. En este caso se usará el evento Shown.

windowTaskbar.SetProgressState(TaskbarProgressBarState.NoProgress);

Se usaran dos propiedades para modificar el progreso o el estado del mismo.

Para modificar el progreso se utiliza la instrucción SetProgressValue. Donde el primer parámetro es el progreso y el segundo es el valor que indicará el 100% del progreso. Para cambiar el estado del progreso se utiliza la instrucción SetProgressState.

windowTaskbar.SetProgressValue(25, 100);
windowTaskbar.SetProgressState(TaskbarProgressBarState.Paused);

Código Ejemplo

Puedes descargar un proyecto ejemplo en donde se muestra como mostrar un progreso en la barra de tareas.

Proyecto ejemplo indicador de progreso

Ejemplo – Indicador de Progreso

Un comentario sobre “Windows Forms – Indicador de Progreso en la Barra de Tareas”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s