gpt4 book ai didi

c# - 在 WPF 中加载 BitmapImage 的源代码?

转载 作者:行者123 更新时间:2023-11-30 19:02:32 25 4
gpt4 key购买 nike

在 silverlight 应用程序中,我有一个定义为 System.Windows.Media.Imaging.BitmapImage 的 BitmapImage,它是一个名为“SetSource”的方法,我可以在其中设置来源是这样的:

BitmapImage bitmap = new BitmapImage();
System.IO.Stream stream = _scene.GetStream();
if (stream == null) return;
bitmap.SetSource(stream);

在 WPF 应用程序中,我还有一个定义为 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());

并且在运行时,它抛出了无法确定 URI 的错误。 URI 是内网的标识符吗?您确定这不是 silverlight 的东西吗?我正在做一个 WPF 应用程序

最佳答案

您必须设置 BitmapImage.StreamSource属性:

BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = _scene.GetStream();
bitmap.EndInit();

如果您想在创建位图后立即关闭流,您还必须设置 BitmapCacheOption.OnLoad 选项:

using (Stream stream = _scene.GetStream())
{
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = stream;
bitmap.EndInit();
}

关于c# - 在 WPF 中加载 BitmapImage 的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11771223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com