#windows-runtime #windows-store-apps #winrt-xaml #live-tile
#windows-среда выполнения #windows-store-приложения #winrt-xaml #живая плитка
Вопрос:
У меня есть приложение, которое сохраняет изображения в библиотеке изображений. Это работает нормально, поскольку я добавил разрешения на использование библиотеки изображений в манифесте приложения.
Сейчас я пытаюсь создать живую плитку, в которой будут отображаться эти изображения, которые были сохранены в библиотеке изображений, но, похоже, у меня это не получается.
Я видел, что можно создать URI для локальной папки приложения или для папки установленного приложения, но я не нашел примера использования абсолютного или относительного пути к библиотеке изображений.
Любая помощь будет оценена
Спасибо
XmlDocument wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Image);
XmlNodeList wideTileImageAttributes = wideTileXml.GetElementsByTagName("image");
((XmlElement)wideTileImageAttributes[0]).SetAttribute("src", fileAbsPath);
((XmlElement)wideTileImageAttributes[0]).SetAttribute("alt", "");
// Create a new tile notification.
updater.Update(new TileNotification(wideTileXml));
Комментарии:
1. Согласно следующему сообщению, то, что я пытаюсь сделать, невозможно. social.msdn.microsoft.com/Forums/windowsapps/en-US/… Обходным путем было бы скопировать файлы из библиотеки изображений в локальную папку приложения и указать живую плитку на скопированные изображения.
Ответ №1:
Как описано на http://msdn.microsoft.com/en-us/library/windows/apps/hh465439.aspx , ссылки на изображения плитки могут использовать ms-appx:///, ms-appdata:/// или URI http [s]://. То есть.
Как вы предлагаете, затем вам нужно скопировать изображение из библиотеки изображений в данные вашего локального приложения. Для этого используйте метод StorageFile.CopyAsync. Однако также имейте в виду, что размер изображений на плитках ограничен 200 КБ, и вполне вероятно, что большинство изображений в библиотеке изображений намного больше. Это означает, что вам нужно будет изменить размер в процессе. Сценарий 2 простого примера создания изображений содержит код для этого.
Кроме того, вы можете сначала вызвать StorageFile.getScaledImageAsThumbnailAsync для изображения в Pictures, запросив размер миниатюр, соответствующий используемому шаблону плитки. Сам эскиз возвращается как StorageItemThumbnail, который представляет собой поток произвольного доступа, поэтому вам нужно скопировать эти байты в файл в local app data. Вы должны иметь возможность снова использовать пример кода Simple imaging, выбирая его там, где у вас есть входной поток, и переходя оттуда.
Еще один фрагмент кода, который я упомяну, написан на JavaScript, но может быть полезен: это сценарий 11 из примера JavaScript App tiles and badges, который представляет собой редактор изображений для плиток. Возможно, вы сможете использовать здесь часть кода, хотя вам придется перевести его на C #.