Partilhar via


JumpList Classe

Definição

Representa uma lista de itens e tarefas exibidas como um menu em um botão da barra de tarefas do Windows 7.

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
Herança
JumpList
Atributos
Implementações

Exemplos

O exemplo a seguir mostra um aplicativo com uma Lista de Atalhos. O aplicativo tem três botões que permitem adicionar uma tarefa à Lista de Atalhos atual, limpar o conteúdo da Lista de Atalhos e aplicar uma nova Lista de Atalhos ao aplicativo.

O exemplo a seguir mostra como declarar um JumpList na marcação. O JumpList contém dois JumpTask links e um JumpPath. A aplicação do JumpPath ao shell falhará se o aplicativo não estiver registrado para manipular a extensão de nome de arquivo .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>

O exemplo a seguir mostra a página code-behind para App.xaml. Esse código manipula os JumpItemsRejected eventos e 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());
        }
    }
}

O exemplo a seguir mostra a marcação usada para criar a interface do usuário do aplicativo.

<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>

O exemplo a seguir mostra a página code-behind para MainWindow.xaml. Esse código demonstra como modificar, limpar e criar um JumpList no código de procedimento. Para a nova Lista de Atalhos, o método estático SetJumpList é chamado para associar o JumpList ao aplicativo atual e aplicar o JumpList ao shell do 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);
        }
    }
}

Comentários

A barra de tarefas do Windows 7 fornece funcionalidade aprimorada para iniciar programas diretamente do botão da barra de tarefas usando Listas de Atalhos. Listas de Atalhos também são usadas no menu Iniciar do Windows 7. Você acessa uma Lista de Atalhos clicando com o botão direito do mouse em um botão da barra de tarefas ou clicando na seta ao lado de um programa no menu Iniciar. Para obter mais informações sobre Listas de Atalhos, consulte a seção Barra de tarefas das Diretrizes de Interação da Experiência do Usuário do Windows.

A JumpList classe fornece um wrapper gerenciado para a funcionalidade Lista de Atalhos na barra de tarefas do Windows 7 e gerencia os dados passados para o shell do Windows. A funcionalidade exposta pela JumpList classe não está disponível em versões do Windows anteriores ao Windows 7. Os aplicativos que usam a JumpList classe serão executados em outras versões do Windows, mas a Lista de Atalhos não estará disponível. Para obter mais informações sobre o shell do Windows e as APIs nativas da Lista de Atalhos, consulte Extensões da barra de tarefas.

A ilustração a seguir mostra a Lista de Atalhos para Windows Media Player, com itens nas categorias Tarefas e Frequentes .

Atalhos do Windows Media PlayerLista de jump
Lista de Atalhos do Windows Media Player

Configurando uma lista de atalhos

Listas de Atalhos podem conter dois tipos de itens, um JumpTask e um JumpPath. Um JumpTask é um link para um programa e um JumpPath é um link para um arquivo. Você pode separar visualmente itens em uma Lista de Atalhos criando um JumpTask que não tem um Title e CustomCategory especificado. Esse vazio JumpTask será exibido como uma linha horizontal na Lista de Atalhos.

Observação

Se o tipo do arquivo especificado em um JumpPath não estiver registrado com seu aplicativo, o arquivo não aparecerá na Lista de Atalhos. Por exemplo, se você adicionar um JumpPath que aponte para um arquivo .txt, seu aplicativo deverá ser registrado para manipular arquivos .txt. Para obter mais informações, consulte Introdução às associações de arquivos.

Os itens de salto são colocados em categorias no JumpList. Por padrão, um JumpItem é exibido na categoria Tarefas . Como alternativa, você pode especificar um CustomCategory para o JumpItem.

Você pode especificar se as categorias padrão Recentes e Frequentes são exibidas no JumpList definindo as ShowRecentCategory propriedades e ShowFrequentCategory . O conteúdo dessas categorias é gerenciado pelo shell do Windows. Como essas categorias podem conter muitos dos mesmos dados, normalmente você exibe um ou outro em seu JumpList, mas não ambos. O Windows gerencia automaticamente itens recentes se eles são abertos por meio de uma caixa de diálogo de arquivo comum ou usados para abrir um aplicativo por meio da associação de tipo de arquivo. Quando um item é acessado por meio da Lista de Atalhos, você pode notificar o shell do Windows para adicionar o item à categoria Recente chamando o AddToRecentCategory método .

Aplicando uma lista de atalhos ao Shell do Windows

Você não pode acessar a Lista de Atalhos do shell diretamente ou ler seu conteúdo na JumpList classe . Em vez disso, a JumpList classe fornece uma representação de uma Lista de Atalhos com a qual você pode trabalhar e, em seguida, aplica-se ao shell do Windows. Normalmente, você cria um JumpList e o define uma vez quando o aplicativo é executado pela primeira vez. No entanto, você pode modificar ou substituir o JumpList em tempo de execução.

Quando você tiver definido as JumpList propriedades, deverá aplicar o JumpList ao shell do Windows antes que seu conteúdo apareça na lista de atalhos da barra de tarefas. Isso é feito automaticamente quando o JumpList é anexado pela primeira vez a um aplicativo, seja em XAML ou em uma chamada para o SetJumpList método . Se você modificar o conteúdo do em tempo de JumpList execução, deverá chamar o Apply método para aplicar seu conteúdo atual ao shell do Windows.

Definindo uma lista de atalhos em XAML

Um JumpList não é anexado automaticamente a um Application objeto . Você anexa um a um JumpListApplication objeto em XAML usando a sintaxe da propriedade anexada. A JumpList classe implementa a ISupportInitialize interface para dar suporte à declaração XAML de um JumpList. Se o JumpList for declarado em XAML e anexado ao atual Application, ele será aplicado automaticamente ao shell do Windows quando o JumpList for inicializado.

Configurando e modificando uma lista de atalhos no código

Você anexa um a um JumpListApplication objeto no código chamando o método estático SetJumpList . Isso também aplica o JumpList ao shell do Windows.

Para modificar um JumpList em tempo de execução, chame o GetJumpList método para obter o JumpList que está atualmente anexado a um Application. Depois de modificar as propriedades do JumpList, você deve chamar o Apply método para aplicar as alterações ao shell do Windows.

Observação

Normalmente, você cria um JumpList anexado ao Application e aplicado ao shell do Windows. No entanto, você pode criar vários JumpList objetos. Somente um JumpList de cada vez pode ser aplicado ao shell do Windows e apenas um JumpList de cada vez pode ser associado a um Application. O .NET Framework não exige que eles sejam o mesmo JumpList.

Observação

Essa classe contém uma demanda de link no nível da classe que se aplica a todos os membros. Um SecurityException é gerado quando o chamador imediato não tem permissão de confiança total. Para obter mais informações sobre demandas de segurança, consulte Vincular demandas e demandas de herança.

Construtores

JumpList()

Inicializa uma nova instância da classe JumpList.

JumpList(IEnumerable<JumpItem>, Boolean, Boolean)

Inicializa uma nova instância da classe JumpList com os parâmetros especificados.

Propriedades

JumpItems

Obtém a coleção de objetos JumpItem exibidos na Lista de Atalhos.

ShowFrequentCategory

Obtém ou define um valor que indica se os itens usados com frequência são exibidos na Lista de Atalhos.

ShowRecentCategory

Obtém ou define um valor que indica se os itens usados recentemente são exibidos na Lista de Atalhos.

Métodos

AddToRecentCategory(JumpPath)

Adiciona o jump path especificado à categoria Recente da Lista de Atalhos.

AddToRecentCategory(JumpTask)

Adiciona a tarefa de salto especificada à categoria Recente da Lista de Atalhos.

AddToRecentCategory(String)

Adiciona o caminho do item especificado à categoria Recente da Lista de Atalhos.

Apply()

Envia o JumpList para o shell do Windows em seu estado atual.

BeginInit()

Sinaliza o início da inicialização JumpList.

EndInit()

Sinaliza o término da inicialização do JumpList.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetJumpList(Application)

Retorna o objeto JumpList associado a um aplicativo.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
SetJumpList(Application, JumpList)

Define o objeto JumpList associado a um aplicativo.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

JumpItemsRejected

Ocorre quando itens de atalho não são adicionados com êxito à lista de atalhos pelo shell do Windows.

JumpItemsRemovedByUser

Ocorre quando itens de atalho anteriormente na lista de atalhos são removidos da lista pelo usuário.

Aplica-se a