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