Я создаю изображения на лету, используя следующий код:XamlWriter и XamlReader с потоковыми изображениями?
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
Затем я попытался клонировать один из объектов, содержащих изображение со следующим кодом:
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
Изображения сериализации в :
...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?