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