我现在有一个WPF应用程序,我试图列出所有安装在机器上的UWP应用程序的所有图标。为此,我引用了所需的UWP程序集。我要做的是:
PackageManager。FindPackagesForUser(string.Empty)给我安装了所有的UWP应用程序。package.GetAppListEntriesAsync()来获取它的所有列表条目。appListEntry.DisplayInfo.GetLogo(new Size(256, 256))。但是,这将返回一个RandomAccessStreamReference,它是一个Windows.UI.Xaml.Media.Imaging.BitmapImage的UWP流,它反过来又是WPF System.Windows.Media.Imaging.BitmapImage的UWP版本。
如何将流的字节转换为WPF BitmapImage?有任何关于UWP如何存储这些的文档吗?
发布于 2018-05-30 06:23:59
只需打开RandomAccessStreamReference进行读取以获得IRandomAccessStream,然后调用AsStream以获得System.IO.Stream
using System.IO;
...
var streamRef = appListEntry.DisplayInfo.GetLogo(new Windows.Foundation.Size(256, 256));
var bitmap = new BitmapImage();
using (var randomAccessStream = await streamRef.OpenReadAsync())
using (var stream = randomAccessStream.AsStream())
{
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = stream;
bitmap.EndInit();
}https://stackoverflow.com/questions/50596735
复制相似问题