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
Настройка списка переходов
Списки переходов могут содержать два типа элементов, 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 |
Происходит при удалении элементов прыжков в списке переходов, ранее в списке пользователем. |