.NET 4 bietet über die Klasse System.Windows.Shell.JumpList Zugriff auf Menüeinträge zu einer Anwendung, die in der Windows7-Taskbar angezeigt werden. Diese Liste läßt sich auf die eigene Anwendung anpassen. Dazu können Objekte mit dem Basistyp System.Windows.Shell.JumpItem hinzugefügt werden. Hier stehen zwei Ableitungen zur Verfügung:
JumpTask stellt hierbei einen Link zu einer Anwendung dar, JumpPath zu einer Datei. Zu beachten ist, dass die Datei unter JumpPath nur angezeigt wird, wenn dessen Dateierweiterung für die aktuelle Anwendung registriert ist, andernfalls erscheint dieser Eintrag nicht in der JumpList. Beide können mittels CustomCategory in Kategorien angezeigt werden.
Eine JumpList wird einem Application-Objekt zugewiesen (mittels SetJumpList). Es können mehrere Objekte vom Typ JumpList erstellt, jedoch immer nur eine Instanz einer Anwendung zugeordnet und somit angezeigt werden.
Via XAML kann die JumpList folgendermaßen angepasst werden:
<Application x:Class="DotNetGui.WpfJumpList.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:shell="clr-namespace:System.Windows.Shell;assembly=PresentationFramework"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
<shell:JumpList.JumpList>
<shell:JumpList ShowRecentCategory="True"
ShowFrequentCategory="True"
JumpItemsRemovedByUser="JumpItemsRemovedByUser"
JumpItemsRejected="JumpItemsRejected"
>
<shell:JumpTask
Title="Read Release Notes"
Description="Open this application's Release Notes"
ApplicationPath="notepad.exe"
WorkingDirectory="C:\Programme\DemoApplication"
Arguments="ReleaseNotes.txt"
IconResourcePath="notepad.exe"
/>
</shell:JumpList>
</shell:JumpList.JumpList>
</Application>
Natürlich kann die JumpList auch per Code gesetzt werden:
private void SetJumpList()
{
JumpList list = new JumpList();
JumpTask task = new JumpTask();
task.Title = "Read Release Notes";
task.Description = "Open this application's Release Notes";
task.ApplicationPath = "notepad.exe";
task.WorkingDirectory = "C:\\Programme\\DemoApplication";
task.Arguments = "ReleaseNotes.txt";
task.IconResourcePath = "notepad.exe";
list.JumpItems.Add(task);
JumpList.SetJumpList(App.Current, list);
}
Und so kann es aussehen:
