我想在WPF中显示图像,但使用的是实际图像,而不是使用URL。这是因为我想序列化图像,所以我可以轻松地携带它们。如果Image类只是Source,我怎么能这样做呢?这意味着,使用URI。这个想法很简单:序列化图像,然后,当反序列化完成时,它会将图像加载到像Image这样的控制器上。 是否有可能,让我说我有图像序列化,然后我怎么能得到他们的URI,甚至这样的东西甚至存在?这非常令人困惑。希望得到一些真正的启示......
我已经找到了很多代码片段,展示了如何序列化/反序列化但老实说我还没能测试它们,因为我的计划的初始部分已经暂停。虽然,如果有人有一个很好的清洁链接,我会很感激!
答案 0 :(得分:1)
WPF不需要实际的URI;它需要一个ImageSource
的实例,它恰好包含一个从string
到ImageSource
的内置转换器,它将字符串解释为URI。
将序列化格式转换为ImageSource
个实例的最简单方法是在IValueConverter
中添加如下内容并返回BitmapImage
:
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = /*your serialized image data in Stream form*/;
bi.EndInit();
答案 1 :(得分:0)
Image.Source
不是一个URI,您可以输入URI,但它们只是使用{{1}自动转换为ImageSource
}。因此,如果您要序列化和反序列化图片,则可以将相应的TypeConverter
作为属性公开,然后可以将其设置为bound或ImageSource
。