如何将BitmapImage传递给ImageSource

时间:2013-10-13 00:45:13

标签: c# wpf xaml bitmapimage imagesource

我是XAML / WPF的新手,我不知道如何处理这个问题,我花了太多时间来讨论这个问题,但我无法弄明白。

我有一个名为Card的类,其属性“应该”包含图像源。

public class Card
{
     public ImageSource image; // this is the only one which doesn't get a value..
}

我还有一个类,其方法可以将信息添加到卡片集合中,如下所示:

public class deck
{
     public card[] = new card[51];
     public void FillCards()
     {
         while(I > something) //don't mind about the loop, because it's working fine
         {
             card[i] = new card()
             {   
                 name = this.name, //works
                 number = this.number, //works
                 //works etc...
                 image = new BitmapImage(new Uri(path, UriKind.Absolute)), //except this is not working
                 //Before you ask, yes the path is correct...
             };
         }   
     }
}

简而言之,我的问题是:

为什么我不能将BitmapImage存储在ImageSource属性中,

我基本上做的是: How can I have a property in a class to store an picture/image?

但是我得到了NullReferenceException。

抱歉英语不好......

1 个答案:

答案 0 :(得分:-1)

有很多方法可以存储图片。 如果属性将绑定到图像控件。 然后您可以使用: byte [] BitmapImage string(Uri)来存储图片。 这是因为这些类型可以自动将BitmapImage转换为ImageSource。

在这种情况下,您只需要修改 ImageSource BitmapImage

顺便说一句,你不能使用ImageSource的原因是ImageSource的构造函数是内部的,所以你甚至无法创建一个ImageSource对象。

所以,就是这样,尝试使用其他类型。

public class Card
{
     // Try some other type, they all can be bind to Image.Source.
     public BitmapImage image; 
}

An related question.

希望它有所帮助。