过去一个小时左右,我一直在为这个问题焦头烂额。
我有一些代码是这样的:
videoTile.Icon = new ImageSourceConverter().ConvertFrom(coDrivr4.Properties.Resources.Music.GetHbitmap()) as ImageSource;
当我运行我的代码时,它说发生了 NullReferenceException。 'Music' 和 GetHbitmap() 的返回值都不为空。
我正在尝试通过属性获取图像,因为这是我弄清楚如何访问我的资源文件夹中的图像的唯一方法。我只想将它们作为资源添加到 app.xaml 文件中,但出于某些原因我没有使用 app.xaml 文件。
我这样做有错吗?我需要做的就是获取资源目录中图像的 ImageSource 对象。我可以在我的 XAML 中很好地使用它们,但我终究不能在任何代码中使用它们。
P.S.:我不能将它们作为资源添加到 XAML 文件中,因为这只是一个类,因此没有 XAML 文件。
最佳答案
我遇到了完全相同的问题 - 我的所有位图都在一个漂亮的静态类型资源文件中,我只想用它们设置一个 ImageSource。因此,由于 ImageSourceConverter 抛出了空引用异常,我改变了策略并改用这段代码:
Bitmap bitmap = entityCol.EntityCollectionImage;
this.Image = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); // Image is an image source
希望对您有所帮助。
关于c# - ImageSourceConverter 抛出 NullReferenceException ... 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036469/