我目前正在尝试使用 WebView 显示加密数据(使用 DPP)。问题是,如果在将 StorageFile 读入 IRandomAccessStream 后以任何方式操作流(即解密数据),我无法让 WebView 显示任何内容。
使用 Microsoft 提供的源可以轻松重现此问题:http: //code.msdn.microsoft.com/windowsapps/XAML-WebView-control-sample-58ad63f7
并更改“StreamUriWinRTResolver”类以将 IRandomAccessStream 转换为内存流,然后再转换回来。基本上,在第 128 行的 S4_NavToStream.xaml.cs 中,更改以下内容:
StorageFile f = item as StorageFile;
IRandomAccessStream stream = await f.OpenAsync(FileAccessMode.Read);
return stream.GetInputStreamAt(0);
有了这个:
StorageFile f = item as StorageFile;
IRandomAccessStream randStream = await f.OpenAsync(FileAccessMode.Read);
var stream = randStream.AsStream();
MemoryStream ms = new MemoryStream();
stream.CopyTo(ms);
return ms.AsInputStream();
这将在运行时显示一个空白页。我开始认为这是一个错误,除非我当然错误地使用了流转换。有没有人尝试过类似的东西?