首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于流图像的XamlWriter和XamlReader?

基于流图像的XamlWriter和XamlReader?
EN

Stack Overflow用户
提问于 2016-05-27 06:07:05
回答 1查看 165关注 0票数 0

我使用以下代码动态创建图像:

代码语言:javascript
复制
Public Function ToBitmapImage(byteArray As Byte()) As BitmapImage
    Dim image As New BitmapImage()
    Dim stream As New MemoryStream(byteArray)
    image.BeginInit()
    image.StreamSource = stream
    image.EndInit()
    image.Freeze()
    Return image
End Function

然后,我尝试用以下代码克隆包含图像的一个对象:

代码语言:javascript
复制
Public Function Clone(Of T As DependencyObject)(orginal As T) As T
    If (orginal Is Nothing) Then
        Return Nothing
    End If

    Using stream As New MemoryStream()
        XamlWriter.Save(orginal, stream)
        stream.Position = 0
        Return CType(XamlReader.Load(stream), T)
    End Using
End Function

这些图像被序列化为:

代码语言:javascript
复制
...xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation"...
<av:Image ...>
    <av:Image.Source>
        <av:BitmapImage BaseUri="{x:Null}" />
    </av:Image.Source>
</av:Image>

BaseUri="{x:Null}"导致了Initialization of 'System.Windows.Media.Imaging.BitmapImage' threw an exception. rownumber 1 row position xxx.,有没有办法强迫它这样序列化BitmapImage中的数据而不是baseUrl?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-27 07:32:19

我找到了一个难看的解决方案,而不是使用image.StreamSource = stream,而是将它们写到一个临时文件中,并将BaseUriUriSource设置为文件位置。

这意味着我必须删除文件,当我完成了他们,所以如果有一个更好的解决方案,我感兴趣!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37475978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档