Condividi tramite


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 un jump list. L'applicazione include tre pulsanti che consentono di aggiungere un'attività all'elenco jump corrente, cancellare il contenuto dell'elenco jump e applicare un nuovo jump list all'applicazione.

Nell'esempio seguente viene illustrato come dichiarare un JumpList oggetto in markup. Contiene JumpList due JumpTask collegamenti e uno JumpPath. L'applicazione alla JumpPath shell avrà esito negativo se l'applicazione non è registrata per gestire l'estensione .txt nome file.

<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, il metodo statico SetJumpList viene chiamato per associare l'oggetto JumpList all'applicazione corrente e applicare l'oggetto JumpList alla 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 usando Jump List. I jump list vengono usati anche nel menu Start di Windows 7. Si accede a un elenco jump 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 su 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 classe verranno eseguite in altre versioni di Windows, ma l'elenco JumpList jump non sarà disponibile. Per altre informazioni sulla shell di Windows e sulle API jump list native, vedere Estensioni della barra delle applicazioni.

Nella figura seguente viene illustrato jump list per Windows Media Player, con elementi nelle categorie Attività e Frequenti .

jump list di Windows Media Player Windows Media Player Jump ListElenco
Jump List di Windows Media Player

Configurazione di un elenco jump

Jump List può 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 elenco jump creando un JumpTask oggetto che non ha un Title oggetto e CustomCategory specificato. Questo vuoto JumpTask verrà visualizzato come riga orizzontale nell'elenco jump.

Nota

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

Gli elementi jump vengono inseriti in categorie nell'oggetto 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 nell'impostazione JumpList delle ShowRecentCategory proprietà e ShowFrequentCategory . Il contenuto di queste categorie viene gestito dalla shell di Windows. Poiché queste categorie potrebbero contenere molti degli stessi dati, in genere viene visualizzato uno o l'altro nell'oggetto JumpList, ma non entrambi. Windows gestisce automaticamente gli elementi recenti se vengono aperti tramite una finestra di dialogo 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 Recenti chiamando il AddToRecentCategory metodo .

Applicazione di un elenco jump alla shell di Windows

Non è possibile accedere direttamente all'elenco jump della shell o leggere il relativo contenuto nella JumpList classe. La classe fornisce invece JumpList una rappresentazione di un elenco jump con cui è possibile usare e quindi applicare 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 l'oggetto JumpList in fase di esecuzione.

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

Impostazione di un elenco jump in XAML

Un JumpList oggetto non è collegato automaticamente a un Application oggetto. Si 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 JumpListoggetto . 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 un elenco jump nel codice

Si collega un oggetto JumpList a un Application oggetto nel codice chiamando il metodo statico SetJumpList . Questo vale JumpList anche per la shell di Windows.

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

Nota

In genere si crea uno JumpList collegato all'oggetto Application e applicato alla shell di Windows. È tuttavia possibile creare più JumpList oggetti. JumpList È possibile applicare una JumpList sola volta alla shell di Windows e una sola alla volta può essere associata a un Applicationoggetto . .NET Framework non richiede che siano gli stessi JumpList.

Nota

Questa classe contiene una richiesta di collegamento a livello di classe che si applica a tutti i membri. Viene SecurityException generato quando il chiamante immediato non dispone dell'autorizzazione di attendibilità completa. Per altre informazioni sulle richieste di sicurezza, vedere Collegare richieste 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 Recente dell'elenco jump.

AddToRecentCategory(JumpTask)

Aggiunge l'attività jump specificata alla categoria Recente dell'elenco jump.

AddToRecentCategory(String)

Aggiunge il percorso dell'elemento specificato alla categoria Recente dell'elenco jump.

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