当我尝试使用将位图加载到devexpress GUI项目时,我当前收到以下异常(根元素缺失)。我有一个执行
的功能Public Function GetStreamFromBitmap(bitmapImage As Bitmap) As Stream
Dim memStream As New IO.MemoryStream
bitmapImage.Save(memStream, bitmapImage.RawFormat)
Return memStream
End Function
Public Function CreateSvgShape(ByVal nameID As String, ByVal display As String, ByVal bitMap As Bitmap) As ShapeDescription
Return ShapeDescription.CreateSvgShape(nameID, display, GetStreamFromBitmap(bitMap)).
Update(getDefaultSize:=Function() New System.Windows.Size(100, 100)).
Update(getConnectionPoints:=Function(w, h, p) {New System.Windows.Point(w / 2, h / 2)})
End Function
我正在使用资源文件中的位图图像,我正在尝试将其放入IO.Stream中。因此,我可以使用流指向我的资源文件中的图片,使用DevExpress控件,使用它来查找要加载到其控件中的文件。在此过程中,XML Parse Document无法在流中找到图片。
答案 0 :(得分:0)
ShapeDescription.CreateSvgShape方法文档说:
svgStream:包含SVG图像的System.IO.Stream对象。
但您已通过位图二进制数据(栅格图像格式)而不是SVG-data(基于XML的矢量图像格式)。 因此,要修复异常,您应该按预期使用此方法。
答案 1 :(得分:0)
您正在使用位图图像而不是SVG文件,但ShapeDescription.CreateSvgShape需要SVG格式。
DevExpress UI项目通常具有Glyph属性,您可以在资源中转换图像,如下所示:
xxx.Glyph = CType(resources.GetObject("image.bmp"), System.Drawing.Image)