Поделиться через


JumpList Класс

Определение

Представляет список элементов и задач, отображаемых на кнопке панели задач 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
Наследование
JumpList
Атрибуты
Реализации

Примеры

В следующем примере показано приложение со списком переходов. В приложении есть три кнопки, позволяющие добавить задачу в текущий список переходов, очистить содержимое списка переходов и применить новый список переходов к приложению.

В следующем примере показано, как объявить в разметке JumpList . Содержит JumpList две JumpTask ссылки и одну JumpPath. JumpPath Применение к оболочке завершится ошибкой, если приложение не зарегистрировано для обработки расширения имени файла .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>

В следующем примере показана страница кода программной части для App.xaml. Этот код обрабатывает JumpItemsRejected события и 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());
        }
    }
}

В следующем примере показана разметка, используемая для создания пользовательского интерфейса приложения.

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

В следующем примере показана страница кода программной части для MainWindow.xaml. В этом коде показано, как изменять, очищать и создавать в процедурном коде JumpList . Для нового списка переходов вызывается статический SetJumpList метод , чтобы связать JumpList с текущим приложением и применить JumpList к оболочке 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);
        }
    }
}

Комментарии

Панель задач Windows 7 предоставляет расширенные функции для запуска программ непосредственно с кнопки панели задач с помощью списков переходов. Списки переходов также используются в меню "Пуск" Windows 7. Чтобы получить доступ к списку переходов, щелкните правой кнопкой мыши кнопку панели задач или щелкните стрелку рядом с программой в меню "Пуск". Дополнительные сведения о списках переходов см. в разделе Панель задач руководства по взаимодействию с пользователем Windows.

Класс JumpList предоставляет управляемую оболочку для функций списка переходов на панели задач Windows 7 и управляет данными, передаваемыми в оболочку Windows. Функциональные возможности, предоставляемые классом JumpList , недоступны в версиях Windows, предшествующих Windows 7. Приложения, использующие JumpList класс , будут работать в других версиях Windows, но список переходов будет недоступен. Дополнительные сведения о оболочке Windows и собственных API списка переходов см. в разделе Расширения панели задач.

На следующем рисунке показан список переходов для проигрывателя Windows Media с элементами в категориях "Задачи" и "Частые ".

Список переходов проигрывателя Windows Media
Список переходов проигрывателя Windows Media

Настройка списка переходов

Списки переходов могут содержать два типа элементов: JumpTask и JumpPath. — JumpTask это ссылка на программу, а — JumpPath ссылка на файл. Вы можете визуально разделять элементы в списке переходов, создав JumpTask объект , который не содержит Title и CustomCategory . Эта пустая JumpTask линия будет отображаться в виде горизонтальной линии в списке переходов.

Примечание

Если тип файла, указанный в JumpPath , не зарегистрирован в приложении, файл не будет отображаться в списке переходов. Например, если добавить объект , указывающий JumpPath на файл .txt, приложение должно быть зарегистрировано для обработки .txt файлов. Дополнительные сведения см. в статье Общие сведения о сопоставлениях файлов.

Элементы перехода помещаются в категории в JumpList. По умолчанию JumpItem отображается в категории Задачи . Кроме того, можно указать CustomCategory для JumpItem.

Можно указать, отображаются ли стандартные категории Последние и Частые в , JumpList задав ShowRecentCategory свойства и ShowFrequentCategory . Содержимое этих категорий управляется оболочкой Windows. Так как эти категории могут содержать большую часть одинаковых данных, вы обычно отображаете один или другой в JumpList, но не оба. Windows автоматически управляет последними элементами, если они открываются через общее диалоговое окно файлов или используются для открытия приложения с помощью сопоставления типов файлов. При доступе к элементу через список переходов можно уведомить оболочку Windows о добавлении элемента в категорию Последние , вызвав AddToRecentCategory метод .

Применение списка переходов к оболочке Windows

Вы не можете получить доступ к списку переходов оболочки напрямую или прочитать его содержимое в JumpList классе . Вместо этого класс предоставляет представление списка переходов, JumpList с которым можно работать, а затем применить к оболочке Windows. Как правило, вы создаете и задаете JumpList его один раз при первом запуске приложения. Однако можно изменить или заменить JumpList во время выполнения.

После установки JumpList свойств необходимо применить к оболочке JumpList Windows, прежде чем ее содержимое появится в списке переходов на панели задач. Это делается автоматически при первом присоединении JumpList к приложению в XAML или при вызове SetJumpList метода . При изменении содержимого JumpList во время выполнения необходимо вызвать Apply метод , чтобы применить его текущее содержимое к оболочке Windows.

Настройка списка переходов в XAML

Объект JumpList не присоединяется к объекту Application автоматически. Присоединение к объекту JumpListApplication в XAML с помощью синтаксиса присоединенного свойства. Класс JumpList реализует интерфейс для поддержки ISupportInitialize объявления XAML объекта JumpList. JumpList Если объект объявлен в XAML и присоединен к текущему Applicationобъекту , он автоматически применяется к оболочке Windows при инициализации JumpList .

Настройка и изменение списка переходов в коде

Присоединение JumpList к объекту Application в коде путем вызова статического SetJumpList метода . Это также применяется JumpList к оболочке Windows.

Чтобы изменить JumpList во время выполнения, вызовите GetJumpList метод , чтобы получить JumpList объект , подключенный Applicationв данный момент к . После изменения свойств JumpListобъекта необходимо вызвать Apply метод , чтобы применить изменения к оболочке Windows.

Примечание

Обычно создается объект JumpList , подключенный Application к и применяемый к оболочке Windows. Однако можно создать несколько JumpList объектов. К оболочке Windows может применяться только один JumpList за раз, и только один JumpList за раз может быть связан с Application. Платформа .NET Framework не требует, чтобы они были одинаковыми JumpList.

Примечание

Этот класс содержит запрос ссылки на уровне класса, который применяется ко всем членам. Возникает SecurityException , если непосредственный вызывающий объект не имеет разрешения с полным доверием. Дополнительные сведения о требованиях к безопасности см. в разделе Требования ссылок и требования наследования.

Конструкторы

JumpList()

Инициализирует новый экземпляр класса JumpList.

JumpList(IEnumerable<JumpItem>, Boolean, Boolean)

Инициализирует новый экземпляр класса JumpList с заданными параметрами.

Свойства

JumpItems

Получает коллекцию объектов JumpItem, отображаемых в списке переходов.

ShowFrequentCategory

Получает или задает значение, указывающее, отображаются ли часто используемые элементы в списке переходов.

ShowRecentCategory

Получает или задает значение, указывающее, отображаются ли недавно использовавшиеся элементы в списке переходов.

Методы

AddToRecentCategory(JumpPath)

Добавляет указанный путь перехода в категорию Последние списка переходов.

AddToRecentCategory(JumpTask)

Добавляет указанную задачу перехода в категорию Последние списка переходов.

AddToRecentCategory(String)

Добавляет указанный путь к элементу в категорию Последние списка переходов.

Apply()

Передает список JumpList в оболочку Windows в текущем состоянии.

BeginInit()

Сигнализирует о начале инициализации объекта JumpList.

EndInit()

Сигнализирует о завершении инициализации объекта JumpList.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetJumpList(Application)

Возвращает объект JumpList, связанный с приложением.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
SetJumpList(Application, JumpList)

Задает объект JumpList, связанный с приложением.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

JumpItemsRejected

Происходит, когда оболочке Windows не удается добавить элементы в список переходов.

JumpItemsRemovedByUser

Происходит при удалении пользователем ранее добавленных элементов из списка переходов.

Применяется к