Заголовок
Content-Language
entity используется для описания языка (языков), предназначенных для аудитории, чтобы он позволял пользователю дифференцироваться в соответствии с собственным предпочтительным языком пользователя.Header type Entity header Forbidden header name no CORS-safelisted response-header yes CORS-safelisted request-header yes
- веб-ссылка MDN - заголовки HTTP - контент-язык
blockquote>HTTP-заголовок запроса
Accept-Language
рекламирует какие языки клиент может понять, и какой вариант локали предпочтительнее. (По языкам мы имеем в виду естественные языки, такие как английский, а не языки программирования.)blockquote>Header type Request header Forbidden header name no CORS-safelisted request-header yes
Связывание данных работает только для свойств. Вы должны добавить свойство в класс AudioFile
для возврата данных обложки. Если вы не хотите поменять AudioFile
по некоторым причинам, затем сопоставьте его / заверните в модель просмотра и поместите свойство в эту модель просмотра.
Тогда у вас будет два варианта.
Вместо public byte[] CoverAsByteArray { get; }
вы можете записать свойство, которое возвращает экземпляр ImageSource
, что-то вроде public ImageSource CoverAsImageSource { get; }
.
XAML будет выглядеть так:
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding CoverAsImageSource}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
Вы можете записать значение converter , чтобы преобразовать значение byte[]
в ImageSource
.
В этом случае XAML будет выглядеть так:
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding CoverAsByteArray, Converter={StaticResource YourConverterKey}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
Предполагая, что byte[]
представляет растровое изображение, вы можете использовать, например, this ответ, чтобы преобразовать его в соответствующий источник изображения.
вы можете использовать Microsoft.WindowsAPICodePack.Shell для получения изображения из вашего mp3-файла
private string cacheLocalFile(string mp3fileName)
{
try
{
using (var shell = ShellFile.FromParsingName(mp3fileName))
{
Bitmap bmp = shell.Thumbnail.Bitmap;
var cachedFileName = shell.Properties.System.FileName.Value;
bmp.Save(Path.Combine(AppCacheDirectory, cachedFileName), ImageFormat.Jpeg);
bmp.Dispose();
return Path.Combine(AppCacheDirectory, cachedFileName);
}
}
catch
{
return String.Empty;
}
}
, вы только что получили миниатюру, сохранили его в файле и вернули файл src в элемент Image, t хотите кэшировать изображение, вы можете просто преобразовать растровое изображение в bitmapImage и связать его с элементом изображения вообще.
AudioFile
находится внутри PCL, поэтому вариант 1 не будет работать: / В Варианте 2, чтоYourConverterKey
? – Daniel DirtyNative Martin 19 October 2015 в 13:02AudionFile
, чтобы просмотреть модель (или обернуть ее в модель просмотра). Вот почему существуют модели просмотра.YourConverterKey
является ключом вашей реализацииIValueConverter
, объявленной где-то выше в ресурсах. См. Эту ссылку, например: wpftutorial.net/ValueConverters.html – Dennis 19 October 2015 в 13:04