Закрепление дополнительных плиток из классических приложений
Классическое приложение, например приложение WinUI 3 (с помощью пакета SDK для приложений Windows), или приложение Windows Presentation Foundation (WPF) или Windows Forms (WinForms), может закрепить вторичную плитку с помощью упаковаированного приложения (см. статью "Создание пакета MSIX из кода"). Это было ранее известно как мост для классических приложений.
Внимание
Требуется Fall Creators Update: необходимо установить целевой пакет SDK 16299 и запустить сборку 16299 или более поздней версии, чтобы закрепить вторичные плитки из мост для классических приложений приложений.
Добавление вторичной плитки из пакета SDK для приложений Windows, WPF или WinForms очень похоже на чистое приложение UWP. Единственное различие заключается в том, что необходимо указать основной дескриптор окна (HWND). Это связано с тем, что при закреплении плитки Windows отображает модальное диалоговое окно с просьбой пользователя подтвердить, хотите ли они закрепить плитку. Если классическое приложение не настраивает объект SecondaryTile с окном владельца, Windows не знает, где нарисовать диалоговое окно, и операция завершится ошибкой.
Упаковка приложения
Если вы создаете приложение пакета SDK для приложений Windows с помощью WinUI 3, необходимо использовать упакованое приложение для закрепления дополнительных плиток. Если вы начинаете работу с шаблоном упаковаемого приложения, не требуется никаких дополнительных действий.
Если вы используете WPF или WinForms, а приложение не упаковано с помощью мост для классических приложений, вам потребуется сделать это, прежде чем использовать любые среда выполнения Windows API (см. статью "Создание пакета MSIX из кода").
Инициализация и закрепление вторичной плитки с помощью интерфейса IInitializeWithWindow
Примечание.
Этот раздел предназначен для WinUI 3; и для WPF/WinForms с .NET 6 или более поздней версии.
В файле проекта задайте свойству TargetFramework значение, которое предоставляет доступ к API-интерфейсам среда выполнения Windows (см. раздел .NET 6 и более поздних версий: использование параметра Moniker целевой платформы). Это включает доступ к пространству имен WinRT.Interop (см . api взаимодействия вызовов из приложения .NET). Например:
<PropertyGroup> <!-- You can also target other versions of the Windows SDK and .NET; for example, "net6.0-windows10.0.19041.0" --> <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework> </PropertyGroup>
Инициализация нового вторичного объекта плитки точно так же, как и обычное приложение UWP. Дополнительные сведения о создании и закреплении вторичных плиток см. в разделе "Закрепление дополнительных плиток".
// Initialize the tile with required arguments var tile = new Windows.UI.StartScreen.SecondaryTile( "myTileId5391", "Display name", "myActivationArgs", new Uri("ms-appx:///Assets/Square150x150Logo.png"), TileSize.Default);
Получение дескриптора окна и инициализация вторичного объекта плитки с помощью этого дескриптора. В приведенном ниже
this
коде приведена ссылка на объект Window (будь то окно WinUI 3, окно WPF или окно WinForms). Дополнительные сведения см. в разделе "Получение дескриптора окна" (HWND) и отображения объектов пользовательского интерфейса WinRT, зависящих от CoreWindow.var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this); WinRT.Interop.InitializeWithWindow.Initialize(tile, hWnd);
Наконец, запрос на закрепление плитки, как и в обычном приложении UWP.
// Pin the tile bool isPinned = await tile.RequestCreateAsync(); // Here, update UI to reflect whether user can now either unpin or pin
Отправка уведомлений об плитке
Внимание
Требуется апрель 2018 версии 17134.81 или более поздней версии: необходимо запустить сборку 17134.81 или более позднюю версию, чтобы отправлять уведомления плитки или эмблемы дополнительным плиткам из мост для классических приложений приложений. До этого обновления обслуживания .81 элемент 0x80070490 не найден исключение при отправке уведомлений плитки или значка на вторичные плитки из приложений мост для классических приложений.
Отправка уведомлений об плитке или индикаторе событий совпадает с приложениями UWP. Чтобы приступить к работе, см . статью "Отправить локальное уведомление об плитке".
Ресурсы
Windows developer