Una Jump List es una lista, la cual aparece al mostrar el menú contextual sobre una aplicación que se encuentre en la barra de tareas. Los elementos de esta lista pueden interactuar como enlaces internos hacia la aplicación o como enlaces externos para ejecutar una aplicación diferente.
En esta parte se expondrá como implementar un Jump List en un proyecto de Windows Forms que ejecute otras aplicaciones.
Como primer paso es agregar el paquete NuGet correspondiente a Windows API Code Pack.
Las siguientes referencias se deben de agregar manualmente en la pestaña del Explorador de soluciones. La razón de estas, es debido a que Windows API Code Pack utiliza algunos elementos de WPF para poder traer estas funcionalidades a Windows Forms.
- PresentationCore
- PresentationFrameWork
- WindowsBase
- System.Xaml
Luego agregar las siguientes declaraciones al espacio de nombres.
using Microsoft.WindowsAPICodePack.Taskbar; using Microsoft.WindowsAPICodePack.Shell; using System.IO;
Para usar el Jump List, se debe de crear una variable del tipo JumpList 🙂
JumpList jlist;
En el constructor del formulario se crea el JumpList (después de InitializeComponent), asignando el identificador de la aplicación y el manejador del formulario.
// Crea un nuevo JumpList para la aplicación jlist = JumpList.CreateJumpListForIndividualWindow(TaskbarManager.Instance.ApplicationId, this.Handle); ConstruirLista();
Para crear la categoría, simplemente se debe de crear un objeto del tipo JumpListCustomCategory al cual se le añadirán elementos del tipo JumpListLink por medio del método AddJumpListItems.
private void ConstruirLista() { // Define una nueva categoría personalizada llamada Utilidades JumpListCustomCategory catActions = new JumpListCustomCategory("Utilidades"); // Genera el path completo hacia la aplicación e icono a utilizar por el JumpListItem string notepadPath = Path.Combine(Environment.SystemDirectory, "notepad.exe"); JumpListLink jlNotepad = new JumpListLink(notepadPath, "Notepad"); jlNotepad.IconReference = new IconReference(notepadPath, 0); string calcPath = Path.Combine(Environment.SystemDirectory, "calc.exe"); JumpListLink jlCalculadora = new JumpListLink(calcPath, "Calculadora"); jlCalculadora.IconReference = new IconReference(calcPath, 0); string paintPath = Path.Combine(Environment.SystemDirectory, "mspaint.exe"); JumpListLink jlPaint = new JumpListLink(paintPath, "Paint"); jlPaint.IconReference = new IconReference(paintPath, 0); // Añade los JumpListItems a la categoría personalizada catActions.AddJumpListItems(jlNotepad, jlCalculadora, jlPaint); // Añade la categoría a la lista jlist.AddCustomCategories(catActions); jlist.Refresh(); }
Código Ejemplo
Con estos sencillos pasos, al ejecutar la solución y abrir el menú contextual de la aplicación en la barra de tareas, se mostrará un JumpList con las siguientes opciones:
1 comentario