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 sie ein JumpList Markup deklarieren. Dies JumpList enthält zwei JumpTask Links und eine JumpPath. JumpPath Wenn das Anwenden der Shell auf die Shell fehlschlägt, 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>

Im folgenden Beispiel wird die Codebehind-Seite für App.xaml. Dieser Code behandelt die JumpItemsRejected und JumpItemsRemovedByUser Ereignisse.

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

Im folgenden Beispiel wird das Markup gezeigt, das zum Erstellen der Anwendungsschnittstelle 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>

Im folgenden Beispiel wird die Codebehind-Seite für MainWindow.xaml. In diesem Code wird veranschaulicht, wie Sie einen JumpList prozeduralen Code ändern, löschen und erstellen. Für die neue Sprungliste wird die statische SetJumpList Methode aufgerufen, um die aktuelle Anwendung zuzuordnen JumpList und die JumpList 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 aus der Taskleiste mithilfe von Sprunglisten. Sprunglisten werden auch in den Windows 7 Startmenü verwendet. Sie greifen auf eine Sprungliste zu, indem Sie mit der rechten Maustaste auf eine Taskleiste klicken oder auf den Pfeil neben einem Programm im Startmenü klicken. Weitere Informationen zu Sprunglisten finden Sie im Abschnitt "Taskleiste" der richtlinien für die Benutzeroberflächeninteraktion Windows.

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

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

Windows Media Player-Sprungliste
Windows Media Player-Sprungliste

Konfigurieren einer Sprungliste

Sprunglisten können zwei Arten von Elementen, a JumpTask und a JumpPathenthalten. A JumpTask ist ein Link zu einem Programm und JumpPath ein Link zu einer Datei. Sie können Elemente in einer Sprungliste visuell trennen, indem Sie ein JumpTask Title Element erstellen, das keines und CustomCategory angegeben hat. Diese leere JumpTask Zeile wird in der Sprungliste als horizontale Zeile angezeigt.

Hinweis

Wenn der in einer JumpPath Anwendung angegebene Dateityp nicht registriert ist, wird die Datei nicht in der Sprungliste angezeigt. Wenn Sie beispielsweise eine JumpPath .txt Datei hinzufügen, muss Ihre Anwendung registriert werden, um .txt Dateien zu behandeln. Weitere Informationen finden Sie in der Einführung in Dateizuordnungen.

Sprungelemente werden in Kategorien im Bereich JumpListplatziert. Standardmäßig wird eine JumpItem in der Kategorie "Aufgaben" angezeigt. Alternativ können Sie eine CustomCategory für die JumpItem.

Sie können angeben, ob die Standardkategorien "Zuletzt" und " Häufig " im JumpList Rahmen der Einstellung der ShowRecentCategory ShowFrequentCategory Eigenschaften angezeigt werden. Der Inhalt dieser Kategorien wird von der Windows-Shell verwaltet. Da diese Kategorien möglicherweise viele der gleichen Daten enthalten, zeigen Sie in der Regel eine oder andere in Ihrem JumpList, aber nicht beides an. Windows verwaltet automatisch zuletzt verwendete Elemente, wenn sie über ein allgemeines Dateidialogfeld geöffnet werden oder verwendet werden, um eine Anwendung über die Dateitypzuordnung zu öffnen. Wenn auf ein Element über die Sprungliste zugegriffen wird, können Sie die Windows Shell benachrichtigen, um das Element zur Kategorie "Zuletzt" hinzuzufügen, 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 dessen Inhalt in die JumpList Klasse lesen. Stattdessen stellt die JumpList Klasse eine Darstellung einer Sprungliste bereit, mit der Sie arbeiten können, und wenden Sie sich dann auf die Windows Shell an. Normalerweise erstellen Sie eine JumpList und legen sie einmal fest, wenn die Anwendung zuerst ausgeführt wird. Sie können die JumpList Laufzeit jedoch ändern oder ersetzen.

Wenn Sie die JumpList Eigenschaften festgelegt haben, müssen Sie die JumpList Windows Shell anwenden, bevor der Inhalt in der Taskleiste Sprungliste angezeigt wird. Dies wird automatisch ausgeführt, wenn die JumpList Erste an eine Anwendung angefügt wird, entweder in XAML oder in einem Aufruf der SetJumpList Methode. Wenn Sie den Inhalt der JumpList Laufzeit ändern, müssen Sie die Apply Methode aufrufen, um den 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 Objekt in XAML mithilfe der angefügten Eigenschaftssyntax an ein Application Objekt an. Die JumpList Klasse implementiert die Schnittstelle zum Unterstützen der ISupportInitialize XAML-Deklaration einer JumpList. Wenn dies JumpList in XAML deklariert und an den aktuellen Applicationangefügt wird, wird sie automatisch auf die Windows-Shell angewendet, wenn die JumpList Initialisierung erfolgt.

Festlegen und Ändern einer Sprungliste im Code

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

Um eine JumpList Laufzeit zu ändern, rufen Sie die GetJumpList Methode auf, um die JumpList aktuell angefügte Methode abzurufen Application. Nachdem Sie die Eigenschaften des JumpListSteuerelements geändert haben, müssen Sie die Apply Methode aufrufen, um die Änderungen auf die Windows Shell anzuwenden.

Hinweis

Normalerweise erstellen Sie eineJumpList, die an Application die Windows Shell angefügt und angewendet wird. Sie können jedoch mehrere JumpList Objekte erstellen. JumpList Nur einmal kann auf die Windows Shell angewendet werden, und nur eine JumpList zu einem Zeitpunkt kann einer zugeordnet Applicationwerden. Die .NET Framework erfordert nicht, dass diese identisch JumpListsind.

Hinweis

Diese Klasse enthält eine Linkanforderungen auf Klassenebene, die für alle Mitglieder gilt. Eine SecurityException wird ausgelöst, wenn der sofortige Anrufer keine voll vertrauenswürdige Berechtigung hat. Weitere Informationen zu Sicherheitsanforderungen finden Sie unter Linkanforderungen und Vererbungsanforderungen.

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 zur Kategorie "Zuletzt verwendete " der Sprungliste hinzu.

AddToRecentCategory(JumpTask)

Fügt der angegebenen Sprungaufgabe die Kategorie "Zuletzt verwendete " der Sprungliste hinzu.

AddToRecentCategory(String)

Fügt den angegebenen Elementpfad zur Kategorie "Zuletzt" 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: