xar*_*rzu 2 c# wpf bitmapimage
在Silverlight应用程序中,我将BitmapImage定义为,System.Windows.Media.Imaging.BitmapImage
并将其作为一个名为" SetSource
" 的方法,我可以像这样设置源:
BitmapImage bitmap = new BitmapImage();
System.IO.Stream stream = _scene.GetStream();
if (stream == null) return;
bitmap.SetSource(stream);
Run Code Online (Sandbox Code Playgroud)
在WPF应用程序中,我还定义了一个Bitmap图像,System.Windows.Media.Imaging.BitmapImage
但没有SetSource方法.如何像在Silverlight应用程序中那样在WPF应用程序中设置源代码?
此外,它是一个流,而不是一个字符串.它不是URI.所以"UriSource"方法不起作用.我试过这个:
System.IO.Stream stream = _scene.GetStream();
if (stream == null) return;
BitmapImage bitmap = new BitmapImage();
bitmap.UriSource = new Uri(stream.ToString());
Run Code Online (Sandbox Code Playgroud)
并且在运行时,它抛出了无法确定URI的错误.URI是Intranet的标识符吗?你确定这不是银光吗?我正在做一个WPF应用程序
Cle*_*ens 11
您必须设置BitmapImage.StreamSource属性:
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = _scene.GetStream();
bitmap.EndInit();
Run Code Online (Sandbox Code Playgroud)
如果要在创建位图后立即关闭流,则还必须设置BitmapCacheOption.OnLoad
选项:
using (Stream stream = _scene.GetStream())
{
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = stream;
bitmap.EndInit();
}
Run Code Online (Sandbox Code Playgroud)