Condividi tramite


JumpList Classe

Definizione

Rappresenta un elenco di elementi e attività visualizzati come menu in un pulsante Windows 7 barra delle applicazioni.

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
Ereditarietà
JumpList
Attributi
Implementazioni

Esempio

L'esempio seguente mostra un'applicazione con jump list. L'applicazione dispone di tre pulsanti che consentono di aggiungere un'attività alla Jump List corrente, cancellare il contenuto della Jump List e applicare una nuova Jump List all'applicazione.

Nell'esempio seguente viene illustrato come dichiarare un oggetto JumpList nel markup. JumpList Contiene due JumpTask collegamenti e uno JumpPath. L'applicazione JumpPath di alla shell avrà esito negativo se l'applicazione non è registrata per gestire l'estensione del nome di file .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>

Nell'esempio seguente viene illustrata la pagina code-behind per App.xaml. Questo codice gestisce gli JumpItemsRejected eventi 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());
        }
    }
}

Nell'esempio seguente viene illustrato il markup usato per creare l'interfaccia utente dell'applicazione.

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

Nell'esempio seguente viene illustrata la pagina code-behind per MainWindow.xaml. Questo codice illustra come modificare, cancellare e creare un oggetto JumpList nel codice procedurale. Per il nuovo jump list, viene chiamato il metodo statico SetJumpList per associare il JumpList all'applicazione corrente e applicare il JumpList alla shell 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);
        }
    }
}

Commenti

La barra delle applicazioni Windows 7 offre funzionalità avanzate per l'avvio dei programmi direttamente dal pulsante della barra delle applicazioni tramite jump list. I jump list vengono usati anche nel menu Start Windows 7. È possibile accedere a una Jump List facendo clic con il pulsante destro del mouse su una barra delle applicazioni o facendo clic sulla freccia accanto a un programma nel menu Start. Per altre informazioni sui jump list, vedere la sezione Taskbar delle linee guida per l'interazione dell'esperienza utente Windows.

La classe JumpList fornisce un wrapper gestito per la funzionalità Jump List nella barra delle applicazioni Windows 7 e gestisce i dati passati alla shell Windows. La funzionalità esposta dalla classe JumpList non è disponibile nelle versioni di Windows precedenti a Windows 7. Le applicazioni che usano la classe JumpList verranno eseguite in altre versioni di Windows, ma il Jump List non sarà disponibile. Per altre informazioni sulla shell di Windows e sulle API jump list native, vedere Taskbar Extensions.

La figura seguente mostra la Jump List per Windows Media Player, con elementi nelle categorie Tasks e Frequent.

Windows Media Player Jump List Windows Media Player Jump List

Configurazione di un jump list

I jump list possono contenere due tipi di elementi, un JumpTask e un JumpPathoggetto . Un JumpTask è un collegamento a un programma e un JumpPath è un collegamento a un file. È possibile separare visivamente gli elementi in un jump list creando un oggetto JumpTask che non dispone di un Title oggetto e CustomCategory specificato. Questo vuoto JumpTask verrà visualizzato come linea orizzontale nella Jump List.

Annotazioni

Se il tipo di file specificato in un JumpPath oggetto non è registrato con l'applicazione, il file non verrà visualizzato nella Jump List. Ad esempio, se si aggiunge un oggetto JumpPath che punta a un file di .txt, l'applicazione deve essere registrata per gestire .txt file. Per altre informazioni, vedere Introduzione alle associazioni di file.

Gli elementi di salto vengono inseriti in categorie in JumpList. Per impostazione predefinita, viene visualizzato un oggetto JumpItem nella categoria Attività . In alternativa, è possibile specificare un CustomCategory oggetto per .JumpItem

È possibile specificare se le categorie recenti e frequenti standard vengono visualizzate in JumpList impostando le ShowRecentCategory proprietà e ShowFrequentCategory . Il contenuto di queste categorie viene gestito dalla shell Windows. Poiché queste categorie possono contenere gran parte degli stessi dati, in genere si visualizza uno o l'altro nell'oggetto JumpList, ma non entrambi. Windows gestisce automaticamente gli elementi recenti se vengono aperti tramite una finestra di dialogo di file comune o usati per aprire un'applicazione tramite l'associazione di tipi di file. Quando si accede a un elemento tramite jump list, è possibile inviare una notifica alla shell di Windows per aggiungere l'elemento alla categoria Recent chiamando il metodo />

Applicazione di una jump list alla shell Windows

Non è possibile accedere direttamente alla Jump List della shell o leggerne il contenuto nella JumpList classe . La classe JumpList fornisce invece una rappresentazione di un jump list che è possibile usare e quindi applicare alla shell Windows. In genere si crea un oggetto JumpList e lo si imposta una sola volta quando l'applicazione viene eseguita per la prima volta. Tuttavia, è possibile modificare o sostituire l'oggetto JumpList in fase di esecuzione.

Quando si impostano le proprietà JumpList, è necessario applicare il JumpList alla shell Windows prima che il relativo contenuto venga visualizzato nella jump list della barra delle applicazioni. Questa operazione viene eseguita automaticamente quando viene JumpList collegato per la prima volta a un'applicazione, in XAML o in una chiamata al SetJumpList metodo . Se si modifica il contenuto del JumpList in fase di esecuzione, è necessario chiamare il metodo Apply per applicare il relativo contenuto corrente alla shell Windows.

Impostazione di una jump list in XAML

Un JumpList oggetto non viene collegato automaticamente a un Application oggetto . Associa un oggetto JumpList a un Application oggetto in XAML usando la sintassi della proprietà associata. La JumpList classe implementa l'interfaccia per supportare la ISupportInitialize dichiarazione XAML di un oggetto JumpList. Se il JumpList viene dichiarato in XAML e collegato al Application corrente, viene applicato automaticamente alla shell Windows quando viene inizializzato il JumpList.

Impostazione e modifica di un jump list nel codice

Per collegare un oggetto JumpList a un Application oggetto nel codice, chiamare il metodo statico SetJumpList . Questo vale anche per il JumpList alla shell Windows.

Per modificare un oggetto JumpList in fase di esecuzione, chiamare il GetJumpList metodo per ottenere l'oggetto JumpList attualmente collegato a un oggetto Application. Dopo aver modificato le proprietà del JumpList, è necessario chiamare il metodo Apply per applicare le modifiche alla shell Windows.

Annotazioni

In genere si crea un JumpList collegato alla Application e applicato alla shell Windows. Tuttavia, è possibile creare più JumpList oggetti. È possibile applicare una sola JumpList alla volta alla shell Windows e una sola JumpList alla volta può essere associata a un Application. Il framework di .NET non richiede che siano uguali JumpList.

Annotazioni

Questa classe contiene una richiesta di collegamento a livello di classe applicabile a tutti i membri. Viene SecurityException generata un'eccezione quando il chiamante immediato non dispone dell'autorizzazione di attendibilità totale. Per altre informazioni sulle richieste di sicurezza, vedere Richieste di collegamento.

Costruttori

Nome Descrizione
JumpList()

Inizializza una nuova istanza della classe JumpList.

JumpList(IEnumerable<JumpItem>, Boolean, Boolean)

Inizializza una nuova istanza della JumpList classe con i parametri specificati.

Proprietà

Nome Descrizione
JumpItems

Ottiene l'insieme di JumpItem oggetti visualizzati nella Jump List.

ShowFrequentCategory

Ottiene o imposta un valore che indica se gli elementi usati di frequente vengono visualizzati nella Jump List.

ShowRecentCategory

Ottiene o imposta un valore che indica se gli elementi utilizzati di recente vengono visualizzati nella Jump List.

Metodi

Nome Descrizione
AddToRecentCategory(JumpPath)

Aggiunge il percorso di salto specificato alla categoria Recenti della Jump List.

AddToRecentCategory(JumpTask)

Aggiunge l'attività jump specificata alla categoria Recenti della Jump List.

AddToRecentCategory(String)

Aggiunge il percorso dell'elemento specificato alla categoria Recenti della Jump List.

Apply()

Invia il JumpList alla shell Windows nello stato corrente.

BeginInit()

Segnala l'inizio dell'inizializzazione JumpList .

EndInit()

Segnala la fine dell'inizializzazione JumpList .

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetJumpList(Application)

Restituisce l'oggetto JumpList associato a un'applicazione.

GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
SetJumpList(Application, JumpList)

Imposta l'oggetto JumpList associato a un'applicazione.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

Nome Descrizione
JumpItemsRejected

Si verifica quando gli elementi jump non vengono aggiunti correttamente alla Jump List dalla shell Windows.

JumpItemsRemovedByUser

Si verifica quando gli elementi jump in precedenza nella Jump List vengono rimossi dall'elenco dall'utente.

Si applica a