JumpList Classe

Definizione

Rappresenta un elenco di elementi e attività visualizzato come menu in un pulsante della barra delle applicazioni di 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
Ereditarietà
JumpList
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrata 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 JumpList oggetto nel markup. Contiene JumpList due JumpTask collegamenti e uno JumpPath. L'applicazione di alla JumpPath 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 JumpList oggetto nel codice procedurale. Per il nuovo jump list, viene chiamato il metodo statico SetJumpList per associare l'oggetto JumpList all'applicazione corrente e applicare alla JumpList shell di 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 di Windows 7 offre funzionalità avanzate per l'avvio di programmi direttamente dal pulsante della barra delle applicazioni tramite Jump List. Le jump list vengono usate anche nel menu Start di Windows 7. Per accedere a una Jump List, fare clic con il pulsante destro del mouse su un pulsante della barra delle applicazioni o scegliere la freccia accanto a un programma nel menu Start. Per altre informazioni sui jump list, vedere la sezione Barra delle applicazioni delle linee guida per l'interazione dell'esperienza utente di Windows.

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

La figura seguente mostra la Jump List per Lettore multimediale Windows, con gli elementi nelle categorie Attività e Frequenti.

jump list Lettore multimediale Windows
Jump List di Windows Media Player

Configurazione di una Jump List

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

Nota

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 .txt, l'applicazione deve essere registrata per gestire .txt file. Per altre informazioni, vedere Introduzione alle associazioni di file.

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

È possibile specificare se le categorie standard Recenti e Frequenti vengono visualizzate in JumpList impostando le ShowRecentCategory proprietà e ShowFrequentCategory . Il contenuto di queste categorie viene gestito dalla shell di 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 usata 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 AddToRecentCategory metodo .

Applicazione di una jump list alla shell di Windows

Non è possibile accedere direttamente alla Jump List della shell o leggerne il contenuto nella JumpList classe . Al contrario, la JumpList classe fornisce una rappresentazione di un jump list che è possibile usare e quindi si applica alla shell di 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 in JumpList fase di esecuzione.

Dopo aver impostato le JumpList proprietà, è necessario applicare alla JumpList shell di 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 modifichi il contenuto di in JumpList fase di esecuzione, devi chiamare il metodo per applicare il Apply relativo contenuto corrente alla shell di Windows.

Impostazione di una jump list in XAML

Un JumpList oggetto non viene collegato automaticamente a un Application oggetto . Puoi allegare un JumpList oggetto 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 l'oggetto JumpList viene dichiarato in XAML e collegato all'oggetto corrente Application, viene applicato automaticamente alla shell di Windows quando viene JumpList inizializzato.

Impostazione e modifica di una jump list nel codice

È possibile associare un JumpList oggetto a un Application oggetto nel codice chiamando il metodo statico SetJumpList . Questo vale anche per JumpList la shell di 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à di JumpList, è necessario chiamare il Apply metodo per applicare le modifiche alla shell di Windows.

Nota

In genere ne crei uno JumpList collegato a Application e applicato alla shell di Windows. Tuttavia, è possibile creare più JumpList oggetti. Solo uno JumpList alla volta può essere applicato alla shell di Windows e solo uno JumpList alla volta può essere associato a un oggetto Application. .NET Framework non richiede che siano uguali JumpList.

Nota

Questa classe contiene una richiesta di collegamento a livello di classe che si applica 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 e richieste di ereditarietà.

Costruttori

JumpList()

Inizializza una nuova istanza della classe JumpList.

JumpList(IEnumerable<JumpItem>, Boolean, Boolean)

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

Proprietà

JumpItems

Ottiene la raccolta di oggetti JumpItem visualizzati nella Jump List.

ShowFrequentCategory

Ottiene o imposta un valore che indica se gli elementi utilizzati 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

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 l'oggetto JumpList alla shell di Windows nello stato corrente.

BeginInit()

Segnala l'avvio dell'inizializzazione dell'oggetto JumpList.

EndInit()

Segnala la fine dell'inizializzazione dell'oggetto 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 l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(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

JumpItemsRejected

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

JumpItemsRemovedByUser

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

Si applica a