Додавання jump lists до програми UWP

PhotoPage

Jump lists були і залишаються частиною класичних програм Windows, дозволяючи перейти до різного функціоналу програми. Наприклад, відкрити останній файл або запустити програму з активованою фічею. Додатки UWP дозволяють нам використовувати аналогічний функціонал, що реалізується у вигляді додаткових пунктів контекстного меню панелі завдань або плитки стартового екрану. JumpList недоступні в ранніх збірках десятки. Тому насамперед оновлюємо систему та SDK. Я оновився до 10.0.10586 Відкриваємо App.xaml.cs і додаємо такий Task:

Додаємо необхідні простори імен:

У властивостях проекту можна переглянути мінімальну версію цільової платформи. Якщо вона досить рання, то код усередині нашого Task-а необхідно буде обернути на try-catch. Поглянувши на код, ви можете помітити, що він використовує файли photo.png та video.png з папки Assets. Ці файли значків необхідно додати до програми. Викликати Task та зареєструвати контекстне меню JumpList можна у будь-який момент. Давайте зробимо це у події OnLaunched(LaunchActivatedEventArgs e).

У цьому ж випадку OnLaunched можна визначити, чи була програма відкрита через пункт JumpList або була відкрита звичайним способом. Аргумент LaunchActivatedEventArgs e містить необхідну інформацію. Якщо його значенням є «photo», то це означає, що програма була відкрита за контекстним посиланням «фото». Ось таке меню у мене вийшло:

додавання

Відловимо, яким чином було відкрито програму і зробимо перехід на сторінку PhotoPage. Для цього в App.xaml.cs потрібно знайти всередині методу OnLaunched код:

і замінити його на щось на зразок:

Тепер якщо файл був обраний ми зробимо з ним що хотіли, і потім запишемо його в списокостанніх відвіданих файлів:

Трохи змінимо наш перший приклад. Перенесемо реєстрацію на екрані блокування з OnLaunched у код, який відкриває файл. Наприкінці if щойно згаданого коду додамо

До речі, SetupJumpList теж змінимо:

Внесемо зміни до OnLaunched

Тепер залишилося тільки при навігації на сторінку PhotoPage обробити аргумент, який передається як параметр виклику

Цей аргумент, як видно, передається з App.xaml.cs до сторінки PhotoPage. Відловити його можна у події OnNavigatedTo. Код який необхідно додати у PhotoPage такий:

Приклад готовий. Після того, як користувач вибере файл зображення, назва файлу з'явиться в контекстному меню на плитці. Після вибору цього контекстного меню програма буде відкрита на сторінці PhotoPage і зображення буде виведено на екран.