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. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

How do I create a custom symbol?

Platform: WinForms |
Control: Diagram


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

1. Create the custom symbol:


//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;  } }



'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:


//Register InsertTool for MySymbol this.diagram1.Controller.RegisterTool(new InsertSymbolTool("InsertMySymbol", typeof(MySymbol)));
//Activate InsertTool for MySymbol this.diagram1.ActivateTool("InsertMySymbol");



'Register InsertTool for MySymbol Me.diagram1.Controller.RegisterTool(New InsertSymbolTool("InsertMySymbol", GetType(MySymbol)))
'Activate InsertTool for MySymbol Me.diagram1.ActivateTool("InsertMySymbol")


2X faster development

The ultimate WinForms UI toolkit to boost your development speed.
You must log in to leave a comment

Please sign in to access our KB

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

Up arrow icon

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

Live Chat Icon For mobile