У меня есть приложение Windows Store, в котором много-много изображений. Кроме того, эти изображения должны быть доступны в нескольких проектах на нескольких платформах.
Я создал библиотеку классов, специально предназначенную для WinRT. Это сработало хорошо, и я смог получить доступ к изображениям с помощью Uri: "ms-appx:///MyImageClassLibrary/PathToImage/ImageName.png"
.
Прекрасной частью этого было то, что я мог отсортировать свои изображения по масштабу, аналогично тому, как я бы сделал это в самих локальных активах, через структуру папок, такую как
/Images
/scale-100
Image1.png
/scale-140
Image1.png
/scale-180
Image1.png
/scale-80
Image1.png
К сожалению, когда я перенацелил библиотеку на PCL (нацеленный на профиль 259), эта функциональность перестала работать. Теперь мне нужно вручную указать то же изображение, что и "ms-appx:///MyImageClassLibrary/PathToImage/scale-100/ImageName.png"
.
Есть ли способ исправить это? Должен ли я ориентироваться на библиотеку именно на WinRT? Если я настрою таргетинг библиотеки на WinRT, может ли она включать Windows Phone 8.1? Сможет ли Windows Phone 8.1 обрабатывать изображения с различным масштабом?
Исходя из моей интуиции, я думаю, что мне, вероятно, придется создавать разные библиотеки изображений для каждой платформы. Если это так, есть ли способ автоматически сгенерировать или связать последующую библиотеку классов, ориентированную на другую платформу (например, Xamarin.iOS / Xamarin.Android), которая копирует все файлы в заданной папке базового проекта (например, все они в scale-100
). Я знаю, что могу связывать файлы вручную, но могу ли я связать папки, чтобы любые обновления канонического проекта отражались в проектах для конкретной платформы?
Я буду больше экспериментировать с этим процессом и буду обновлять здесь любую информацию, которую найду.
Спасибо.
Обновления:
Масштабирование и прямая ссылка отлично работают как с Windows 8.1, так и с Windows Phone 8.1.