Hello,
I have some problems when I try to deserialize custom objects which implements RadDiagramShape.
I have implemented a custom shape :
public class MyShape : ElementShape{ public override GraphicsPath CreatePath(System.Drawing.Rectangle bounds) { GraphicsPath path = new GraphicsPath(); path.AddString("Custom", new System.Drawing.FontFamily("Arial"), 0, bounds.Width, Point.Empty, StringFormat.GenericTypographic); return path; }}And a custom diagramShape :
public sealed class MyDiagramShape : RadDiagramShape { public MyDiagramShape() { ShapeText = ""; ElementShape = new MyShape(); InternalElementColor = System.Drawing.Color.LightBlue; } } I add this custom shape to my diagram:
MyDiagramShape diagramShape = new MyDiagramShape();diagramShape.Position = new Telerik.Windows.Diagrams.Core.Point(100, 80);radDiagram1.AddShape(diagramShape);This works fine, and when I serialize, I get a XML like this:
<RadDiagram> <Shapes> <MyDiagramShape Type="WindowsFormsApplicationCustomShape.MyDiagramShape" </Shapes></RadDiagram>
Problems come when I try to load this XML, object instanciated are typed as RadDiagramShape and not MyDiagramShape.
When I serialize again, the structure of the XML is like this :
<RadDiagram><Shapes> <RadDiagramShape Type="Telerik.WinControls.UI.RadDiagramShape"</Shapes></RadDiagram>
I don't know if it's possible to instanciate objects with their derived type like specified in the XML ?
Thanks in advance