Бөлісу құралы:


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. Чтобы получить доступ к списку переходов, щелкните правой кнопкой мыши кнопку панели задач или щелкните стрелку рядом с программой в меню "Пуск". Дополнительные сведения о списках переходов см. в разделе Taskbar руководства по взаимодействию с пользователем Windows.

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

На следующем рисунке показан список переходов для Windows Media Player с элементами в категориях Tasks и Frequent.

Windows Media Player Список переходов Windows Media Player

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

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

Замечание

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

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

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

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

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

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

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

Объект JumpList не подключен Application автоматически. Присоединение JumpList объекта к объекту Application в XAML с помощью синтаксиса присоединенного свойства. Класс JumpList реализует ISupportInitialize интерфейс для поддержки JumpListобъявления XAML объекта. Если 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 не требует, чтобы они были одинаковыми 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

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

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