UWP - Изображение Uri в папке приложения
У меня есть небольшая проблема при показе изображений.
Поэтому, когда я пытаюсь загрузить изображения из XAML, я могу использовать относительный uri для источника изображения следующим образом:
<Image Source="/Assets/image.jpg" />
Но если я попытаюсь изменить исходный код изображения программно из кода позади, я всегда получаю исключение, и я уверен, это из-за ложного Uri. Я пробовал что-то вроде этого:
BitmapImage bitmapImage = new BitmapImage(new Uri("/Assets/image.jpg"));
Я делаю это неправильно? Любая помощь будет оценена, спасибо!
Ответы
Ответ 1
Чтобы получить доступ к файлам, хранящимся внутри пакета приложения, но из кода, в котором нет установленных полномочий root, вам необходимо указать схему ms-appx:
Итак, в вашем случае это будет что-то вроде:
BitmapImage bitmapImage =
new BitmapImage(new Uri("ms-appx://[project-name]/Assets/image.jpg"));
Прочтите эту документацию для более подробной информации: https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh965322.aspx
Надеюсь, что это поможет.
Ответ 2
Вы также можете использовать его с BaseUri.
BitmapImage bitmapImage = new BitmapImage(new Uri(this.BaseUri, "/Assets/image.jpg"));
Активы - это имя папки, и вы можете изменить ее с любым именем пользовательской папки:)
Ответ 3
Просто используйте его так
<Image Source="Assets/image.jpg" />
Ответ 4
Image img = new Image();
img.Source = new BitmapImage(new Uri("http://www.contoso.com/images/logo.png"));
Ответ 5
Я считаю, что WPF является более прощающим и возможны такие пути, как "Assets/image.png". Если вы пишете приложение UWA (win 10), вам нужно использовать URI "ms-appx".
Мой опыт "ms-appx:///Assets/image.png" отлично работает.
Да, три "/" (!) и нет необходимости в имени приложения в пути.