WPFDevelopers es un proyecto de código abierto centrado en controles básicos y personalizados para WPF, que ofrece potentes capacidades de integración con el sistema Windows. La gestión de iconos en la barra de tareas es un componente clave para mejorar la experiencia interactiva de las aplicaciones. Este artículo te enseñará a utilizar WPFDevelopers para implementar rápidamente funciones avanzadas como indicadores de progreso en la barra de tareas, barras de herramientas en miniaturas y notificaciones del sistema, logrando que tu aplicación se vea más profesional en el entorno Windows.
Estados de progreso en la barra de tareas: visualización intuitiva del avance
La funcionalidad de progreso en la barra de tareas es indispensable en las aplicaciones modernas de Windows, ya que permite al usuario conocer el estado de las operaciones sin cambiar de ventana. WPFDevelopers proporciona cinco modos de visualización mediante la enumeración TaskbarItemProgressState, adaptándose a diferentes escenarios:
- None: Estado predeterminado, no muestra progreso.
- Indeterminate: Animación cíclica, indica que la tarea está en curso pero no se puede determinar el progreso.
- Normal: Barra de progreso verde, muestra el avance normal de una tarea completada.
- Error: Barra de progreso roja, señala que ocurrió un error en la ejecución.
- Paused: Barra de progreso amarilla, indica que la tarea está en pausa.
Estos estados se definen en el archivo src/Microsoft.Windows.Shell/TaskbarItemProgressState.cs y se pueden cambiar fácilmente asignando el valor correspondiente a una propiedad.
Componente central: la clase TaskbarItemInfo
El núcleo de la gestión de la barra de tareas en WPFDevelopers es la clase TaskbarItemInfo, que encapsula diversas características de interacción de la barra de tareas de Windows. Sus propiedades principales son:
- ProgressState: Controla el estado de visualización de la barra de progreso.
- ProgressValue: Establece el valor de progreso entre 0 y 1.
- Overlay: Muestra una imagen superpuesta en el icono de la barra de tareas.
- Description: Texto descriptivo que se muestra al pasar el mouse.
- ThumbnailClipMargin: Ajusta el área de recorte de la miniatura de la barra de tareas.
- ThumbButtonInfos: Administra la colección de botones de la barra de herramientas en miniatura.
La clase se encuentra en src/Microsoft.Windows.Shell/TaskbarItemInfo.cs y utiliza propiedades de dependencia para habilitar el enlace de datos en WPF, lo que facilita su configuración directamente en XAML.
Integración rápida: pasos para implementar funciones de barra de tareas
Para integrar la funcionalidad de la barra de tareas en tu aplicación WPF, solo necesitas seguir estos sencillos pasos:
- Agregar el espacio de nombres: En el archivo XAML, declara el espacio de nombres de WPFDevelopers.
xmlns:wd="https://github.com/WPFDevelopersOrg/WPFDevelopers"
- Configurar TaskbarItemInfo: Dentro de la etiqueta Window, agrega la configuración de la barra de tareas.
<Window.TaskbarItemInfo>
<TaskbarItemInfo
ProgressState="Normal"
ProgressValue="0.5"
Description="Procesando..."/>
</Window.TaskbarItemInfo>
- Controlar el progreso mediante código: Actualiza dinámicamente el valor de progreso en el código subyacente.
var info = me.TaskbarItemInfo;
info.ProgressValue = progreso;
if (huboError)
info.ProgressState = TaskbarItemProgressState.Error;
El ejemplo completo se encuentra en src/WPFDevelopers.Samples.Shared/ExampleViews/TaskbarItemInfoExample.xaml, donde se muestra cómo modificar el estado de la barra de tareas mediante botones.
Funcionalidades avanzadas: barra de herramientas en miniatura e interacción
WPFDevelopers también admite la barra de herrameintas en miniatura de la barra de tareas, que permite agregar botones personalizados encima de la miniatura de la aplicación para realizar acciones rápidas. Mediante la clase ThumbButtonInfo y la colección ThumbButtonInfoCollection, es posible crear fácilmente estos botones:
<TaskbarItemInfo>
<TaskbarItemInfo.ThumbButtonInfos>
<ThumbButtonInfo
ImageSource="/Images/play.png"
Description="Reproducir"
Command="{Binding ComandoReproducir}"/>
<ThumbButtonInfo
ImageSource="/Images/pause.png"
Description="Pausar"
Command="{Binding ComandoPausar}"/>
</TaskbarItemInfo.ThumbButtonInfos>
</TaskbarItemInfo>
La clase ThumbButtonInfo proporciona propiedades como Visibility (controlar visibilidad), IsEnabled (habilitar/deshabilitar) y DismissWhenClicked (cerrar la miniatura al hacer clic). Estas funcionalidades permiten que la aplicación ofrezca operaciones esenciales desde la propia barra de tareas, mejorando significativamente la experiencia del usuario.
Escenarios de uso y buenas prácticas
La gestión de iconos en la barra de tareas se aplica de diferentes maneras según el tipo de aplicación:
- Software de procesamiento de archivos: Usa la barra de progreso para mostrar el avance de copias o conversiones.
- Reproductor multimedia: Mediante la barra de herramientas en miniatura, permite controlar reproducción/pausa, siguiente/anterior.
- Herramientas de descarga: Muestra el progreso de la descarga y señala errores con color rojo.
- Aplicaciones de servicios en segundo plano: Emplea la superposición (Overlay) para indicar el estado del servicio.
Buenas prácticas recomendadas:
- Proporciona retroalimentación visual cuando cambie el estado de progreso.
- En caso de error, además de cambiar el color de la barra, combínalo con notificaciones del sistema.
- Limita los botones de la barra de herramientas en miniatura a 3–5 para evitar saturación.
- Asegúrate de que el código relacionado con la barra de tareas se ejecute en el hilo de la interfaz de usuario.