We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

How do I create a custom symbol?


The following code sample demonstrates how you can create a custom symbol and use it in Essential Diagram:

1. Create the custom symbol:

[C#] //Custom Symbol (MySymbol.cs) public class MySymbol : Symbol {  private Syncfusion.Windows.Forms.Diagram.Rectangle outerRect = null;  private Ellipse innerEllipse = null;

 public MySymbol()  {   //////////////////////////////////////////////////////////////////   // Add child nodes to the symbol programmatically   //////////////////////////////////////////////////////////////////

  // Add an outer rectangle   this.outerRect = new Syncfusion.Windows.Forms.Diagram.Rectangle(0, 0, 120, 80);   this.outerRect.Name = "Rectangle";   this.outerRect.FillStyle.Color = Color.Khaki;   this.AppendChild(outerRect);

  // Add an inner ellipse   this.innerEllipse = new Ellipse(10, 10, 100, 60);   this.innerEllipse.Name = "Ellipse";   this.AppendChild(innerEllipse);     //Add Label   Label lbl = this.AddLabel("My Symbol", BoxPosition.Center);   lbl.BackgroundStyle.Color = Color.Transparent;  } }

[VB.NET] 'Custom Symbol (MySymbol.vb) Public Class MySymbol         Inherits Symbol         Private outerRect As Syncfusion.Windows.Forms.Diagram.Rectangle = Nothing         Private innerEllipse As Ellipse = Nothing                  Public Sub New()                         ' Add child nodes to the symbol programmatically                         ' Add an outer rectangle             Me.outerRect = New Syncfusion.Windows.Forms.Diagram.Rectangle(0, 0, 120, 80)             Me.outerRect.Name = "Rectangle"             Me.outerRect.FillStyle.Color = Color.Khaki             Me.AppendChild(outerRect)                         ' Add an inner ellipse             Me.innerEllipse = New Ellipse(10, 10, 100, 60)             Me.innerEllipse.Name = "Ellipse"             Me.AppendChild(innerEllipse)                         'Add Label             Dim lbl As Label = Me.AddLabel("My Symbol", BoxPosition.Center)             lbl.BackgroundStyle.Color = Color.Transparent         End Sub 'New End Class 'MySymbol

2. Using the symbol in the form:

[C#] //Register InsertTool for MySymbol this.diagram1.Controller.RegisterTool(new InsertSymbolTool("InsertMySymbol", typeof(MySymbol)));

//Activate InsertTool for MySymbol this.diagram1.ActivateTool("InsertMySymbol");

[VB.NET] 'Register InsertTool for MySymbol Me.diagram1.Controller.RegisterTool(New InsertSymbolTool("InsertMySymbol", GetType(MySymbol)))

'Activate InsertTool for MySymbol Me.diagram1.ActivateTool("InsertMySymbol")

Article ID: Published Date: Last Revised Date: Platform: Control:
164 04/30/2011 07/10/2014 WinForms Diagram
Did you find this information helpful?
Add Comment
You must log in to leave a comment

Please sign in to access our KB

or the page will be automatically redirected to sign-in page in 10 seconds.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon