#windows #xaml #uwp
#Windows #xaml #uwp
Вопрос:
Я новичок в разработке UWP, и я просто показываю изображение в своем приложении из музыкальной библиотеки.
Фактически, я добавил музыкальную библиотеку в «Возможности» приложения, и я могу подтвердить, что у меня есть доступ к музыкальной библиотеке, поскольку я могу читать и записывать в нее файлы.
Но когда я пытаюсь загрузить изображение в XAML, оно просто не отображается…
<Image Height="200" Width="200" Source="C:/Users/Alex Mercer/Music/Album/albumArt.png" />
Пожалуйста, помогите мне понять и решить проблему.
😃 Большое спасибо!
Комментарии:
1. Приложение UWP не может просто получить доступ к случайным файлам в файловой системе. Если вы хотите получить доступ к музыкальной библиотеке, вам придется сделать это через предоставленные интерфейсы.
Ответ №1:
Хотя мы включаем соответствующие возможности, доступ к файлам через пути по-прежнему строго ограничен в UWP.
На самом деле, не стоит записывать полный путь в XAML, потому что вы не можете гарантировать, что путь должен существовать на устройстве, на котором установлено приложение.
Чтобы отобразить изображения в музыкальной библиотеке, вы можете сделать это:
xaml
<Image Height="200" Width="200" x:Name="AlbumImage" Loaded="AlbumImage_Loaded"/>
xaml.cs
private async void AlbumImage_Loaded(object sender, RoutedEventArgs e)
{
try
{
var albumFolder = await KnownFolders.MusicLibrary.GetFolderAsync("Album");
var albumPic = await albumFolder.GetFileAsync("albumArt.png");
var bitmap = new BitmapImage();
using (var stream = await albumPic.OpenAsync(FileAccessMode.Read))
{
await bitmap.SetSourceAsync(stream);
}
AlbumImage.Source = bitmap;
}
catch (FileNotFoundException)
{
// File or Folder not found
}
catch (Exception)
{
throw;
}
}