I have a data model that I'm trying to draw in a Diagram. I'm having some success with a custom shape class something like below. MyModelElement has X, Y, W, H & Text as well as other model data. I'm getting the bounding box in a different location to my visible shape, and it's always 100x100. I tried adding
Size =
new
Size(element.W, element.H)
in the RadDiagramShape creation below, but didn't change anything. Any help appreciated.
My code to populate the diagram is similar to below.
private
void
PopulateDiagram()
{
foreach
(var element
in
elements)
{
var elementShape =
new
MyElementShape(element);
var shape =
new
RadDiagramShape
{
Text = element.Text,
ElementShape = elementShape,
ForeColor = Color.Black,
DrawBorder =
true
,
BorderThickness =
new
Padding(1),
Position =
new
Telerik.Windows.Diagrams.Core.Point(element.X, element.Y)
};
radDiagram1.AddShape(shape);
}
public
class
MYElementShape : ElementShape
{
public
MyElementShape(MyModelElement element)
{
_element = element;
}
public
override
GraphicsPath CreatePath(Rectangle bounds)
{
GraphicsPath path =
new
GraphicsPath();
path.AddRectangle(
new
Rectangle(_element.X, _element.Y, _element.W, _element.H));
return
path;
}
}