JumpList Clase

Definición

Representa una lista de elementos y tareas que se muestra como un menú de un botón de la barra de tareas de Windows 7.Represents a list of items and tasks displayed as a menu on a Windows 7 taskbar button.

public ref class JumpList sealed : System::ComponentModel::ISupportInitialize
[System.Windows.Markup.ContentProperty("JumpItems")]
public sealed class JumpList : System.ComponentModel.ISupportInitialize
[System.Security.SecurityCritical]
[System.Windows.Markup.ContentProperty("JumpItems")]
public sealed class JumpList : System.ComponentModel.ISupportInitialize
type JumpList = class
    interface ISupportInitialize
Public NotInheritable Class JumpList
Implements ISupportInitialize
Herencia
JumpList
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra una aplicación con una Jump List.The following example shows an application with a Jump List. La aplicación tiene tres botones que le permiten agregar una tarea a la Jump List actual, borrar el contenido de la Jump List y aplicar una nueva Jump List a la aplicación.The application has three buttons that enable you to add a task to the current Jump List, clear the contents of the Jump List, and apply a new Jump List to the application.

En el ejemplo siguiente se muestra cómo declarar un JumpList en el marcado.The following example shows how to declare a JumpList in markup. El JumpList contiene dos vínculos JumpTask y otro JumpPath.The JumpList contains two JumpTask links and one JumpPath. Se producirá un error al aplicar el JumpPath al shell si la aplicación no está registrada para controlar la extensión de nombre de archivo. txt.Applying the JumpPath to the shell will fail if the application is not registered to handle the .txt file name extension.

<Application x:Class="JumpListSample.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <JumpList.JumpList>
        <JumpList ShowRecentCategory="True"
                  ShowFrequentCategory="True"
                  JumpItemsRejected="JumpList_JumpItemsRejected"
                  JumpItemsRemovedByUser="JumpList_JumpItemsRemovedByUser">
            <JumpTask Title="Notepad" 
                      Description="Open Notepad." 
                      ApplicationPath="C:\Windows\notepad.exe"
                      IconResourcePath="C:\Windows\notepad.exe"/>
            <JumpTask Title="Read Me" 
                      Description="Open readme.txt in Notepad." 
                      ApplicationPath="C:\Windows\notepad.exe"
                      IconResourcePath="C:\Windows\System32\imageres.dll"
                      IconResourceIndex="14"
                      WorkingDirectory="C:\Users\Public\Documents"
                      Arguments="readme.txt"/>
            <JumpPath Path="C:\Users\Public\Documents\readme.txt" />
        </JumpList>
    </JumpList.JumpList>
</Application>

En el ejemplo siguiente se muestra la página de código subyacente para App.xaml.The following example shows the code-behind page for App.xaml. Este código controla los eventos JumpItemsRejected y JumpItemsRemovedByUser.This code handles the JumpItemsRejected and JumpItemsRemovedByUser events.

using System.Text;
using System.Windows;
using System.Windows.Shell;

namespace JumpListSample
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        private void JumpList_JumpItemsRejected(object sender, System.Windows.Shell.JumpItemsRejectedEventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0} Jump Items Rejected:\n", e.RejectionReasons.Count);
            for (int i = 0; i < e.RejectionReasons.Count; ++i)
            {
                if (e.RejectedItems[i].GetType() == typeof(JumpPath))
                    sb.AppendFormat("Reason: {0}\tItem: {1}\n", e.RejectionReasons[i], ((JumpPath)e.RejectedItems[i]).Path);
                else
                    sb.AppendFormat("Reason: {0}\tItem: {1}\n", e.RejectionReasons[i], ((JumpTask)e.RejectedItems[i]).ApplicationPath);
            }

            MessageBox.Show(sb.ToString());
        }

        private void JumpList_JumpItemsRemovedByUser(object sender, System.Windows.Shell.JumpItemsRemovedEventArgs e)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0} Jump Items Removed by the user:\n", e.RemovedItems.Count);
            for (int i = 0; i < e.RemovedItems.Count; ++i)
            {
                sb.AppendFormat("{0}\n", e.RemovedItems[i]);
            }

            MessageBox.Show(sb.ToString());
        }
    }
}

En el ejemplo siguiente se muestra el marcado que se usa para crear la interfaz de usuario de la aplicación.The following example shows the markup used to create the application user interface.

<Window x:Class="JumpListSample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Jump List Sample" Height="240" Width="500">
    <Window.Resources>
        <Style TargetType="Button">
            <Setter Property="Width" Value="200" />
            <Setter Property="Margin" Value="5" />
        </Style>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <Button Content="Add Task to JumpList" Click="AddTask" />
            <Button Content="Clear Jump List" Click="ClearJumpList"/>
            <Button Content="Set New Jump List" Click="SetNewJumpList" />
        </StackPanel>
    </Grid>
</Window>

En el ejemplo siguiente se muestra la página de código subyacente para MainWindow.xaml.The following example shows the code-behind page for MainWindow.xaml. Este código muestra cómo modificar, borrar y crear un JumpList en el código de procedimiento.This code demonstrates how to modify, clear, and create a JumpList in procedural code. Para la nueva Jump List, se llama al método estático SetJumpList para asociar el JumpList a la aplicación actual y aplicar la JumpList al shell de Windows.For the new Jump List, the static SetJumpList method is called to associate the JumpList with the current application and apply the JumpList to the Windows shell.

using System;
using System.IO;
using System.Windows;
using System.Windows.Shell;

namespace JumpListSample
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void AddTask(object sender, RoutedEventArgs e)
        {
            // Configure a new JumpTask.
            JumpTask jumpTask1 = new JumpTask();
            // Get the path to Calculator and set the JumpTask properties.
            jumpTask1.ApplicationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.SystemX86), "calc.exe");
            jumpTask1.IconResourcePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.SystemX86), "calc.exe");
            jumpTask1.Title = "Calculator";
            jumpTask1.Description = "Open Calculator.";
            jumpTask1.CustomCategory = "User Added Tasks";
            // Get the JumpList from the application and update it.
            JumpList jumpList1 = JumpList.GetJumpList(App.Current);
            jumpList1.JumpItems.Add(jumpTask1);
            JumpList.AddToRecentCategory(jumpTask1);
            jumpList1.Apply();
        }
        private void ClearJumpList(object sender, RoutedEventArgs e)
        {
            JumpList jumpList1 = JumpList.GetJumpList(App.Current);
            jumpList1.JumpItems.Clear();
            jumpList1.Apply();
        }
        private void SetNewJumpList(object sender, RoutedEventArgs e)
        {
            //Configure a new JumpTask
            JumpTask jumpTask1 = new JumpTask();
            // Get the path to WordPad and set the JumpTask properties.
            jumpTask1.ApplicationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "write.exe");
            jumpTask1.IconResourcePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "write.exe");
            jumpTask1.Title = "WordPad";
            jumpTask1.Description = "Open WordPad.";
            jumpTask1.CustomCategory = "Jump List 2";
            // Create and set the new JumpList.
            JumpList jumpList2 = new JumpList();
            jumpList2.JumpItems.Add(jumpTask1);
            JumpList.SetJumpList(App.Current, jumpList2);
        }
    }
}

Comentarios

La barra de tareas Windows 7Windows 7 proporciona una funcionalidad mejorada para iniciar programas directamente desde el botón de la barra de tareas mediante Jump lists.The Windows 7Windows 7 taskbar provides enhanced functionality for starting programs directly from the taskbar button by using Jump Lists. Las listas de accesos directos también se usan en el menú Inicio de Windows 7Windows 7.Jump Lists are also used in the Windows 7Windows 7 Start menu. Para tener acceso a una Jump List, haga clic con el botón secundario en un botón de la barra de tareas o haga clic en la flecha situada junto a un programa en el menú Inicio.You access a Jump List by right-clicking a taskbar button or by clicking the arrow next to a program in the Start menu. Para obtener más información sobre las listas de accesos directos, consulte la sección barra de tareas de las directrices de interacción de la experiencia del usuario de Windows.For more information about Jump Lists, see the Taskbar section of the Windows User Experience Interaction Guidelines.

La clase JumpList proporciona un contenedor administrado para la funcionalidad Jump List de la barra de tareas Windows 7Windows 7 y administra los datos pasados al shell WindowsWindows.The JumpList class provides a managed wrapper for the Jump List functionality in the Windows 7Windows 7 taskbar and manages the data passed to the WindowsWindows shell. La funcionalidad expuesta por la clase JumpList no está disponible en las versiones de WindowsWindows anteriores a Windows 7Windows 7.The functionality exposed by the JumpList class is not available in versions of WindowsWindows earlier than Windows 7Windows 7. Las aplicaciones que usan la clase JumpList se ejecutarán en otras versiones de WindowsWindows, pero la Jump List no estará disponible.Applications that use the JumpList class will run in other versions of WindowsWindows, but the Jump List will not be available. Para obtener más información sobre el shell de Windows y las API de Jump List nativas, consulte extensiones de la barra de tareas.For more information about the Windows shell and native Jump List APIs, see Taskbar Extensions.

En la ilustración siguiente se muestra la Jump List para Windows Media Player, con elementos de las categorías tareas y frecuentes .The following illustration shows the Jump List for Windows Media Player, with items in the Tasks and Frequent categories.

Jump List de Windows Media PlayerWindows Media Player Jump List
Jump List de Windows Media PlayerWindows Media Player Jump List

Configuración de una Jump ListConfiguring a Jump List

Las listas de accesos directos pueden contener dos tipos de elementos: un JumpTask y un JumpPath.Jump Lists can contain two types of items, a JumpTask and a JumpPath. Un JumpTask es un vínculo a un programa y un JumpPath es un vínculo a un archivo.A JumpTask is a link to a program and a JumpPath is a link to a file. Puede separar visualmente los elementos de una Jump List creando un JumpTask que no tenga un Title y CustomCategory especificado.You can visually separate items in a Jump List by creating a JumpTask that does not have a Title and CustomCategory specified. Este JumpTask vacío se mostrará como una línea horizontal en la Jump List.This empty JumpTask will be displayed as a horizontal line in the Jump List.

Nota

Si el tipo de archivo especificado en una JumpPath no está registrado en la aplicación, el archivo no aparecerá en la Jump List.If the type of the file specified in a JumpPath is not registered with your application, the file will not appear in the Jump List. Por ejemplo, si agrega una JumpPath que señala a un archivo. txt, la aplicación debe estar registrada para controlar los archivos. txt.For example, if you add a JumpPath that points to a .txt file, your application must be registered to handle .txt files. Para obtener más información, vea Introducción a las asociaciones de archivo.For more information, see Introduction to File Associations.

Los elementos de salto se colocan en categorías en el JumpList.Jump items are placed into categories in the JumpList. De forma predeterminada, se muestra un JumpItem en la categoría de tareas .By default, a JumpItem is displayed in the Tasks category. También puede especificar un CustomCategory para la JumpItem.Alternatively, you can specify a CustomCategory for the JumpItem.

Puede especificar si se muestran las categorías estándar recientes y frecuentes en el JumpList estableciendo las propiedades ShowRecentCategory y ShowFrequentCategory.You can specify whether the standard Recent and Frequent categories are displayed in the JumpList by setting the ShowRecentCategory and ShowFrequentCategory properties. El contenido de estas categorías se administra mediante el shell de WindowsWindows.The contents of these categories are managed by the WindowsWindows shell. Dado que estas categorías pueden contener muchos de los mismos datos, normalmente se muestra una u otra en el JumpList, pero no ambas.Because these categories might contain much of the same data, you typically display one or the other in your JumpList, but not both. WindowsWindows administra automáticamente los elementos recientes si se abren a través de un cuadro de diálogo de archivo común o se usan para abrir una aplicación a través de la Asociación de tipo de archivo.automatically manages recent items if they are opened through a common file dialog box or used to open an application through file type association. Cuando se tiene acceso a un elemento a través de la Jump List, se puede notificar al shell de WindowsWindows para agregar el elemento a la categoría reciente llamando al método AddToRecentCategory.When an item is accessed through the Jump List, you can notify the WindowsWindows shell to add the item to the Recent category by calling the AddToRecentCategory method.

Aplicar una Jump List al shell de WindowsApplying a Jump List to the Windows Shell

No se puede acceder directamente a la Jump List del shell ni leer su contenido en la clase JumpList.You cannot access the shell's Jump List directly or read its contents into the JumpList class. En su lugar, la clase JumpList proporciona una representación de una Jump List con la que puede trabajar y, a continuación, se aplica al shell WindowsWindows.Instead, the JumpList class provides a representation of a Jump List that you can work with, and then apply to the WindowsWindows shell. Normalmente se crea una JumpList y se establece una vez cuando se ejecuta la aplicación por primera vez.You typically create a JumpList and set it one time when the application is first run. Sin embargo, puede modificar o reemplazar el JumpList en tiempo de ejecución.However, you can modify or replace the JumpList at run time.

Cuando haya establecido las propiedades de JumpList, debe aplicar el JumpList al shell de Windows antes de que su contenido aparezca en la Jump List de la barra de tareas.When you have set the JumpList properties, you must apply the JumpList to the Windows shell before its contents appear in the taskbar Jump List. Esto se hace automáticamente cuando el JumpList se adjunta primero a una aplicación, ya sea en XAML o en una llamada al método SetJumpList.This is done automatically when the JumpList is first attached to an application, either in XAML or in a call to the SetJumpList method. Si modifica el contenido de la JumpList en tiempo de ejecución, debe llamar al método Apply para aplicar su contenido actual en el shell de Windows.If you modify the contents of the JumpList at run time, you must call the Apply method to apply its current contents to the Windows shell.

Establecer una Jump List en XAMLSetting a Jump List in XAML

Un JumpList no se adjunta automáticamente a un objeto Application.A JumpList is not automatically attached to an Application object. Puede adjuntar un JumpList a un objeto Application en XAML mediante la sintaxis de la propiedad adjunta.You attach a JumpList to an Application object in XAML by using the attached property syntax. La clase JumpList implementa la interfaz ISupportInitialize para admitir la declaración XAML de un JumpList.The JumpList class implements the ISupportInitialize interface to support XAML declaration of a JumpList. Si el JumpList se declara en XAML y se adjunta al Applicationactual, se aplica automáticamente al shell de WindowsWindows cuando se inicializa el JumpList.If the JumpList is declared in XAML and attached to the current Application, it is automatically applied to the WindowsWindows shell when the JumpList is initialized.

Establecer y modificar una Jump List en el códigoSetting and Modifying a Jump List in Code

Para asociar un JumpList a un objeto Application en el código, llame al método estático SetJumpList.You attach a JumpList to an Application object in code by calling the static SetJumpList method. Esto también aplica el JumpList al shell de WindowsWindows.This also applies the JumpList to the WindowsWindows shell.

Para modificar un JumpList en tiempo de ejecución, llame al método GetJumpList para obtener el JumpList que está asociado actualmente a un Application.To modify a JumpList at run time, you call the GetJumpList method to get the JumpList that is currently attached to an Application. Después de modificar las propiedades del JumpList, debe llamar al método Apply para aplicar los cambios en el shell de Windows.After you have modified the properties of the JumpList, you must call the Apply method to apply the changes to the Windows shell.

Nota

Normalmente, se crea un JumpList que se adjunta al Application y se aplica al shell de WindowsWindows.You typically create one JumpList that is attached to the Application and applied to the WindowsWindows shell. Sin embargo, puede crear varios objetos JumpList.However, you can create multiple JumpList objects. Solo se puede aplicar una JumpList a la vez al shell WindowsWindows y solo se puede asociar una JumpList a la vez a una Application.Only one JumpList at a time can be applied to the WindowsWindows shell, and only one JumpList at a time can be associated with an Application. No es necesario que el .NET Framework sea el mismo JumpList.The .NET Framework does not require that these be the same JumpList.

Nota

Esta clase contiene una petición de vínculo en el nivel de clase que se aplica a todos los miembros.This class contains a link demand at the class level that applies to all members. Se produce una SecurityException cuando el llamador inmediato no tiene permiso de plena confianza.A SecurityException is thrown when the immediate caller does not have full-trust permission. Para obtener más información sobre las demandas de seguridad, vea peticiones de vínculo y peticiones de herencia.For more information about security demands, see Link Demands and Inheritance Demands.

Constructores

JumpList()

Inicializa una nueva instancia de la clase JumpList.Initializes a new instance of the JumpList class.

JumpList(IEnumerable<JumpItem>, Boolean, Boolean)

Inicializa una nueva instancia de la clase JumpList con los parámetros especificados.Initializes a new instance of the JumpList class with the specified parameters.

Propiedades

JumpItems

Obtiene la colección de objetos JumpItem que aparecen en la Jump List.Gets the collection of JumpItem objects that are displayed in the Jump List.

ShowFrequentCategory

Obtiene o establece un valor que indica si los elementos que se usan con frecuencia aparecen en la Jump List.Gets or sets a value that indicates whether frequently used items are displayed in the Jump List.

ShowRecentCategory

Obtiene o establece un valor que indica si los elementos usados recientemente aparecen en la Jump List.Gets or sets a value that indicates whether recently used items are displayed in the Jump List.

Métodos

AddToRecentCategory(JumpPath)

Agrega la ruta de acceso especificada para el salto a la categoría Reciente de la Jump List.Adds the specified jump path to the Recent category of the Jump List.

AddToRecentCategory(JumpTask)

Agrega la tarea especificada para el salto a la categoría Reciente de la Jump List.Adds the specified jump task to the Recent category of the Jump List.

AddToRecentCategory(String)

Agrega la ruta de acceso del elemento especificado a la categoría Reciente de la Jump List.Adds the specified item path to the Recent category of the Jump List.

Apply()

Envía JumpList al shell de Windows en su estado actual.Sends the JumpList to the Windows shell in its current state.

BeginInit()

Señala el inicio de la inicialización de JumpList.Signals the start of the JumpList initialization.

EndInit()

Señala el final de la inicialización de JumpList.Signals the end of the JumpList initialization.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetJumpList(Application)

Devuelve el objeto JumpList asociado a una aplicación.Returns the JumpList object associated with an application.

GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
SetJumpList(Application, JumpList)

Establece el objeto JumpList asociado a una aplicación.Sets the JumpList object associated with an application.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Eventos

JumpItemsRejected

Se produce cuando el shell de Windows no agrega correctamente los elementos de salto a la Jump list.Occurs when jump items are not successfully added to the Jump List by the Windows shell.

JumpItemsRemovedByUser

Se produce cuando el usuario quita de la lista los elementos de salto que anteriormente estaban en la Jump List.Occurs when jump items previously in the Jump List are removed from the list by the user.

Se aplica a