JumpList Klasse

Definition

Stellt eine Liste von Elementen und Aufgaben dar, die auf einer Windows 7-Taskleistenschaltfläche als Menü angezeigt werden.

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
Vererbung
JumpList
Attribute
Implementiert

Beispiele

Das folgende Beispiel zeigt eine Anwendung mit einer Sprungliste. Die Anwendung verfügt über drei Schaltflächen, mit denen Sie der aktuellen Sprungliste eine Aufgabe hinzufügen, den Inhalt der Sprungliste löschen und eine neue Sprungliste auf die Anwendung anwenden können.

Im folgenden Beispiel wird gezeigt, wie ein JumpList in Markup deklariert wird. Enthält JumpList zwei JumpTask Links und einen JumpPath. Das Anwenden von JumpPath auf die Shell schlägt fehl, wenn die Anwendung nicht registriert ist, um die .txt Dateinamenerweiterung zu behandeln.

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

Das folgende Beispiel zeigt die CodeBehind-Seite für App.xaml. Dieser Code behandelt die JumpItemsRejected Ereignisse und 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());
        }
    }
}

Das folgende Beispiel zeigt das Markup, das zum Erstellen der Benutzeroberfläche der Anwendung verwendet wird.

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

Das folgende Beispiel zeigt die CodeBehind-Seite für MainWindow.xaml. Dieser Code veranschaulicht, wie Sie einen JumpList in prozeduralen Code ändern, löschen und erstellen. Für die neue Sprungliste wird die statische SetJumpList Methode aufgerufen, um die JumpList der aktuellen Anwendung zuzuordnen und auf JumpList die Windows-Shell anzuwenden.

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);
        }
    }
}

Hinweise

Die Windows 7-Taskleiste bietet erweiterte Funktionen zum Starten von Programmen direkt über die Taskleistenschaltfläche mithilfe von Sprunglisten. Sprunglisten werden auch im Windows 7-Startmenü verwendet. Sie greifen auf eine Sprungliste zu, indem Sie mit der rechten Maustaste auf eine Taskleistenschaltfläche klicken oder im Startmenü auf den Pfeil neben einem Programm klicken. Weitere Informationen zu Sprunglisten finden Sie im Abschnitt Taskleiste der Richtlinien für die Interaktion mit der Windows-Benutzeroberfläche.

Die JumpList -Klasse stellt einen verwalteten Wrapper für die Jump List-Funktionalität in der Windows 7-Taskleiste bereit und verwaltet die an die Windows-Shell übergebenen Daten. Die von der JumpList -Klasse verfügbar gemachte Funktionalität ist in Versionen von Windows vor Windows 7 nicht verfügbar. Anwendungen, die die JumpList -Klasse verwenden, werden in anderen Versionen von Windows ausgeführt, aber die Sprungliste ist nicht verfügbar. Weitere Informationen zur Windows-Shell und nativen Sprunglisten-APIs finden Sie unter Taskleistenerweiterungen.

Die folgende Abbildung zeigt die Sprungliste für Windows Medienwiedergabe mit Elementen in den Kategorien Aufgaben und Häufig.

Windows Medienwiedergabe Sprungliste
Windows Media Player-Sprungliste

Konfigurieren einer Sprungliste

Sprunglisten können zwei Arten von Elementen enthalten: eine JumpTask und eine JumpPath. A JumpTask ist ein Link zu einem Programm und ein JumpPath link zu einer Datei. Sie können Elemente in einer Sprungliste visuell trennen, indem Sie ein JumpTask erstellen, für das kein und CustomCategoryTitle angegeben ist. Diese Leere JumpTask wird als horizontale Linie in der Sprungliste angezeigt.

Hinweis

Wenn der in einem JumpPath angegebene Dateityp nicht bei Ihrer Anwendung registriert ist, wird die Datei nicht in der Sprungliste angezeigt. Wenn Sie beispielsweise ein JumpPath hinzufügen, das auf eine .txt-Datei verweist, muss Ihre Anwendung registriert sein, um .txt Dateien verarbeiten zu können. Weitere Informationen finden Sie unter Einführung in Dateizuordnungen.

Sprungelemente werden in Kategorien im JumpListplatziert. Standardmäßig wird ein JumpItem in der Kategorie Aufgaben angezeigt. Alternativ können Sie einen CustomCategory für angeben JumpItem.

Sie können angeben, ob die Standardkategorien Zuletzt und Häufig im JumpList angezeigt werden, indem Sie die ShowRecentCategory Eigenschaften und ShowFrequentCategory festlegen. Der Inhalt dieser Kategorien wird von der Windows-Shell verwaltet. Da diese Kategorien möglicherweise einen Großteil der gleichen Daten enthalten, zeigen Sie in der Regel die eine oder die andere in Ihrem JumpListan, aber nicht beide. Zuletzt verwendete Elemente werden von Windows automatisch verwaltet, wenn sie über ein allgemeines Dateidialogfeld geöffnet oder zum Öffnen einer Anwendung über die Dateitypzuordnung verwendet werden. Wenn über die Sprungliste auf ein Element zugegriffen wird, können Sie die Windows-Shell benachrichtigen, das Element der Kategorie Zuletzt hinzugefügt zu haben, indem Sie die AddToRecentCategory -Methode aufrufen.

Anwenden einer Sprungliste auf die Windows Shell

Sie können nicht direkt auf die Sprungliste der Shell zugreifen oder deren Inhalte in die JumpList Klasse lesen. Stattdessen stellt die JumpList Klasse eine Darstellung einer Sprungliste bereit, mit der Sie arbeiten und dann auf die Windows-Shell anwenden können. In der Regel erstellen Sie ein JumpList und legen sie einmal fest, wenn die Anwendung zum ersten Mal ausgeführt wird. Sie können den JumpList jedoch zur Laufzeit ändern oder ersetzen.

Wenn Sie die JumpList Eigenschaften festgelegt haben, müssen Sie die auf die Windows-Shell anwenden, bevor ihr JumpList Inhalt in der Taskleisten-Sprungliste angezeigt wird. Dies geschieht automatisch, wenn die JumpList zuerst an eine Anwendung angefügt wird, entweder in XAML oder in einem Aufruf der SetJumpList -Methode. Wenn Sie den Inhalt von JumpList zur Laufzeit ändern, müssen Sie die -Methode aufrufen, um ihren Apply aktuellen Inhalt auf die Windows-Shell anzuwenden.

Festlegen einer Sprungliste in XAML

Ein JumpList -Objekt wird nicht automatisch an ein Application Objekt angefügt. Sie fügen ein JumpList an ein Application Objekt in XAML an, indem Sie die Syntax der angefügten Eigenschaft verwenden. Die JumpList -Klasse implementiert die -Schnittstelle, um die ISupportInitialize XAML-Deklaration eines JumpListzu unterstützen. Wenn das JumpList in XAML deklariert und an den aktuellen Applicationangefügt wird, wird es automatisch auf die Windows-Shell angewendet, wenn das JumpList initialisiert wird.

Festlegen und Ändern einer Sprungliste im Code

Sie fügen ein JumpList an ein Application Objekt im Code an, indem Sie die statische SetJumpList Methode aufrufen. Dies gilt auch für die JumpList Windows-Shell.

Um ein JumpList zur Laufzeit zu ändern, rufen Sie die GetJumpList -Methode auf, um die abzurufen, die JumpList derzeit an eine Applicationangefügt ist. Nachdem Sie die Eigenschaften von JumpListgeändert haben, müssen Sie die Apply -Methode aufrufen, um die Änderungen auf die Windows-Shell anzuwenden.

Hinweis

In der Regel erstellen Sie eine JumpList , die an die Application angefügt ist und auf die Windows-Shell angewendet wird. Sie können jedoch mehrere JumpList Objekte erstellen. Die Windows-Shell kann jeweils nur einzeln JumpList angewendet werden, und nur eins JumpList nach dem anderen kann einem Applicationzugeordnet werden. Die .NET Framework erfordert nicht, dass diese identisch JumpListsind.

Hinweis

Diese Klasse enthält einen Linkbedarf auf Klassenebene, der für alle Member gilt. Ein SecurityException wird ausgelöst, wenn der unmittelbare Aufrufer nicht über die Vollvertrauensberechtigung verfügt. Weitere Informationen zu Sicherheitsanforderungen finden Sie unter Linkanforderungen und Vererbungsforderungen.

Konstruktoren

JumpList()

Initialisiert eine neue Instanz der JumpList-Klasse.

JumpList(IEnumerable<JumpItem>, Boolean, Boolean)

Initialisiert eine neue Instanz der JumpList-Klasse mit den angegebenen Parametern.

Eigenschaften

JumpItems

Ruft die Auflistung von JumpItem-Objekten, die in der Sprungliste angezeigt werden, ab.

ShowFrequentCategory

Ruft einen Wert ab, der angibt, ob häufig verwendete Elemente in der Sprungliste angezeigt werden, oder legt ihn fest.

ShowRecentCategory

Ruft einen Wert ab, der angibt, ob zuletzt verwendete Elemente in der Sprungliste angezeigt werden, oder legt ihn fest.

Methoden

AddToRecentCategory(JumpPath)

Fügt den angegebenen Sprungpfad der Kategorie Zuletzt verwendet der Sprungliste hinzu.

AddToRecentCategory(JumpTask)

Fügt die angegebene Sprungaufgabe der Kategorie Zuletzt verwendet der Sprungliste hinzu.

AddToRecentCategory(String)

Fügt den angegebenen Elementpfad der Kategorie Zuletzt verwendet der Sprungliste hinzu.

Apply()

Sendet das JumpList-Objekt in seinem aktuellen Zustand an die Windows-Shell.

BeginInit()

Signalisiert den Beginn der JumpList-Initialisierung.

EndInit()

Signalisiert das Ende der JumpList-Initialisierung.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetJumpList(Application)

Gibt das mit einer Anwendung verknüpfte JumpList-Objekt zurück.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
SetJumpList(Application, JumpList)

Legt das einer Anwendung zugeordnete JumpList-Objekt fest.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

JumpItemsRejected

Tritt auf, wenn beim Hinzufügen von Sprungelementen zur Sprungliste durch die Windows-Shell ein Fehler aufgetreten ist.

JumpItemsRemovedByUser

Tritt auf, wenn Sprungelemente, die zuvor in der Sprungliste enthalten waren, vom Benutzer aus der Liste entfernt werden.

Gilt für: