Windows Forms – Jump List (enlaces externos)

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:

Jump List con enlaces a otras aplicaciones

Ejemplo – Jump List (enlaces externos)

 

One thought on “Windows Forms – Jump List (enlaces externos)”

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