Compartir vía


JumpList Clase

Definición

Representa una lista de elementos y tareas que se muestran como un menú en un botón Windows 7 barra de tareas.

public ref class JumpList sealed : System::ComponentModel::ISupportInitialize
[System.Windows.Markup.ContentProperty("JumpItems")]
public sealed class JumpList : System.ComponentModel.ISupportInitialize
[System.Windows.Markup.ContentProperty("JumpItems")]
[System.Security.SecurityCritical]
public sealed class JumpList : System.ComponentModel.ISupportInitialize
[<System.Windows.Markup.ContentProperty("JumpItems")>]
type JumpList = class
    interface ISupportInitialize
[<System.Windows.Markup.ContentProperty("JumpItems")>]
[<System.Security.SecurityCritical>]
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 lista de accesos directos. La aplicación tiene tres botones que permiten agregar una tarea a la lista de accesos directos actual, borrar el contenido de la lista de accesos directos y aplicar una nueva lista de accesos directos a la aplicación.

En el ejemplo siguiente se muestra cómo declarar un JumpList objeto en el marcado. JumpList contiene dos JumpTask vínculos y uno JumpPath. JumpPath Si la aplicación se aplica al shell, se producirá un error si la aplicación no está registrada para controlar la extensión de nombre de archivo .txt.

<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. Este código controla los JumpItemsRejected eventos y JumpItemsRemovedByUser .

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 usado para crear la interfaz de usuario de la aplicación.

<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. En este código se muestra cómo modificar, borrar y crear un JumpList en código de procedimiento. Para la nueva lista de accesos directos, se llama al método estático SetJumpList para asociar el JumpList con la aplicación actual y aplicar el JumpList al shell de Windows.

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 de Windows 7 proporciona una funcionalidad mejorada para iniciar programas directamente desde el botón de la barra de tareas mediante listas de accesos directos. Las listas de accesos directos también se usan en el menú Inicio de Windows 7. Para acceder a una lista de accesos directos, haga clic con el botón derecho en un botón de la barra de tareas o haga clic en la flecha situada junto a un programa en el menú Inicio. Para obtener más información sobre las listas de accesos directos, consulte la sección Taskbar de las directrices de interacción de la experiencia del usuario de Windows.

La clase JumpList proporciona un contenedor administrado para la funcionalidad Jump List en la barra de tareas de Windows 7 y administra los datos pasados al shell de Windows. La funcionalidad expuesta por la clase /> Taskbar Extensions.

En la siguiente ilustración se muestra la lista de accesos directos para Windows Media Player, con elementos en las categorías Tasks y Frequent.

Windows Media Player Jump List Windows Media Player Jump List

Configuración de una lista de accesos directos

Las listas de accesos directos pueden contener dos tipos de elementos, a JumpTask y .JumpPath Un JumpTask es un vínculo a un programa y un JumpPath es un vínculo a un archivo. Puede separar visualmente los elementos de una lista de accesos directos mediante la creación de un JumpTask objeto que no tiene un Title elemento y CustomCategory especificado. Este vacío JumpTask se mostrará como una línea horizontal en la lista de accesos directos.

Nota:

Si el tipo de archivo especificado en un JumpPath no está registrado con la aplicación, el archivo no aparecerá en la Lista de accesos directos. Por ejemplo, si agrega un JumpPath que apunta a un archivo .txt, la aplicación debe registrarse para controlar .txt archivos. Para obtener más información, vea Introducción a las asociaciones de archivos.

Los elementos de salto se colocan en categorías de JumpList. De forma predeterminada, se muestra un JumpItem elemento en la categoría Tareas . Como alternativa, puede especificar un CustomCategory para .JumpItem

Puede especificar si las categorías recientes y frecuentes estándar se muestran en estableciendo JumpList las ShowRecentCategory propiedades y ShowFrequentCategory . El shell de Windows administra el contenido de estas categorías. Dado que estas categorías pueden contener muchos de los mismos datos, normalmente se muestran uno o el otro en JumpList, pero no ambos. Windows 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 tipos de archivo. Cuando se accede a un elemento a través de la lista de accesos directos, puede notificar al shell de Windows agregar el elemento al Recent mediante una llamada al método AddToRecentCategory.

Aplicación de una lista de accesos directos al shell de Windows

No puede acceder directamente a la lista de accesos directos del shell ni leer su contenido en la JumpList clase . En su lugar, la clase JumpList proporciona una representación de una lista de accesos directos con la que puede trabajar y, a continuación, se aplica al shell de Windows. Normalmente, se crea JumpList y se establece una vez cuando la aplicación se ejecuta por primera vez. Sin embargo, puede modificar o reemplazar en JumpList tiempo de ejecución.

Cuando haya establecido las propiedades JumpList, debe aplicar el JumpList al shell de Windows antes de que su contenido aparezca en la lista de accesos directos de la barra de tareas. Esto se realiza automáticamente cuando JumpList se adjunta por primera vez a una aplicación, ya sea en XAML o en una llamada al SetJumpList método . Si modifica el contenido del JumpList en tiempo de ejecución, debe llamar al método Apply para aplicar su contenido actual al shell de Windows.

Establecer una lista de accesos directos en XAML

Un JumpList objeto no se adjunta automáticamente a un Application objeto . Adjunta un JumpList objeto a un Application objeto en XAML mediante la sintaxis de la propiedad adjunta. La JumpList clase implementa la interfaz para admitir la ISupportInitialize declaración XAML de .JumpList Si el JumpList se declara en XAML y se adjunta al Application actual, se aplica automáticamente al shell de Windows cuando se inicializa el JumpList.

Establecer y modificar una lista de accesos directos en el código

Un objeto se adjunta JumpList a un Application objeto en el código mediante una llamada al método estático SetJumpList . Esto también aplica el JumpList al shell de Windows.

Para modificar un JumpList objeto en tiempo de ejecución, llame al GetJumpList método para obtener el JumpList objeto que está asociado actualmente a un Application. Después de modificar las propiedades de la JumpList, debe llamar al método Apply para aplicar los cambios en el shell de Windows.

Nota:

Normalmente, se crea un JumpList que está asociado al Application y se aplica al shell de Windows. Sin embargo, puede crear varios JumpList objetos. Solo se puede aplicar una JumpList a la vez al shell de Windows, y solo se puede asociar una JumpList a la vez a una Application. El .NET Framework no requiere que sean los mismos JumpList.

Nota:

Esta clase contiene una demanda de vínculo en el nivel de clase que se aplica a todos los miembros. Se SecurityException produce una excepción cuando el autor de la llamada inmediato no tiene permiso de plena confianza. Para obtener más información sobre las demandas de seguridad, vea Vincular demandas.

Constructores

Nombre Description
JumpList()

Inicializa una nueva instancia de la clase JumpList.

JumpList(IEnumerable<JumpItem>, Boolean, Boolean)

Inicializa una nueva instancia de la JumpList clase con los parámetros especificados.

Propiedades

Nombre Description
JumpItems

Obtiene la colección de JumpItem objetos que se muestran en la lista de accesos directos.

ShowFrequentCategory

Obtiene o establece un valor que indica si los elementos usados con frecuencia se muestran en la lista de accesos directos.

ShowRecentCategory

Obtiene o establece un valor que indica si los elementos usados recientemente se muestran en la lista de accesos directos.

Métodos

Nombre Description
AddToRecentCategory(JumpPath)

Agrega la ruta de acceso de salto especificada a la categoría Reciente de la lista de accesos directos.

AddToRecentCategory(JumpTask)

Agrega la tarea de salto especificada a la categoría Reciente de la lista de accesos directos.

AddToRecentCategory(String)

Agrega la ruta de acceso del elemento especificada a la categoría Reciente de la lista de accesos directos.

Apply()

Envía el JumpList al shell de Windows en su estado actual.

BeginInit()

Indica el inicio de la JumpList inicialización.

EndInit()

Indica el final de la JumpList inicialización.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como función hash predeterminada.

(Heredado de Object)
GetJumpList(Application)

Devuelve el JumpList objeto asociado a una aplicación.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
SetJumpList(Application, JumpList)

Establece el JumpList objeto asociado a una aplicación.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Eventos

Nombre Description
JumpItemsRejected

Se produce cuando el shell de Windows agrega correctamente los elementos de salto a la lista de accesos directos.

JumpItemsRemovedByUser

Se produce cuando el usuario quita los elementos de salto anteriormente en la lista de accesos directos.

Se aplica a