Create an Interactive BPMN Editor Using the WPF Diagram Control
Tags: csharp, dotnet, wpf
Published: 2022-02-05 13:45:49

---
title: Create an Interactive BPMN Editor Using the WPF Diagram Control
published: true
date: 2022-02-04 11:00:34 UTC
tags: csharp, dotnet, wpf
canonical_url: https://www.syncfusion.com/blogs/post/create-an-interactive-bpmn-editor-using-the-wpf-diagram-control.aspx
cover_image: https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Create-an-Interactive-BPMN-Editor-Using-the-WPF-Diagram-Control-1-672x372.png
---

A business process can be confusing for anyone who is not directly involved with the process. A [Business Process Model and Notation (BPMN)](https://en.wikipedia.org/wiki/Business_Process_Model_and_Notation "Wikipedia page for Business Process Model and Notation") diagram creates a visual representation of a complex business process in a form similar to a flowchart. We can share such diagrams across organizations and industries to communicate the necessary information to complete a process.

In this blog, we will see how to easily create a BPMN editor with an interactive user interface using the Syncfusion [WPF Diagram control](https://www.syncfusion.com/wpf-ui-controls/diagram "WPF Diagram control"). In the course of this explainer, we’ll also see how to use the rich set of features available in the WPF Diagram control to give your app a better user experience.

Let’s start!

![Creating a BPMN Editor Using the WPF Diagram Control](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Creating-a-BPMN-Editor-Using-the-WPF-Diagram-Control-1.png)
<figcaption>Creating a BPMN Editor Using the WPF Diagram Control</figcaption>

## BPMN shapes

The BPMN shapes help us to represent internal business processes in a graphical notation. They enable you to communicate procedures in a standard manner. These shapes are popular and intuitive graphics that can be easily understood by all business stakeholders, including business users, business analysts, software developers, and data architects.

The WPF Diagram control supports the following BPMN shapes:

<table style="height: 1712px; width: 783px;">
<thead>
<tr style="height: 23px;">
<td style="height: 23px; width: 274px;" width="103"><strong>Shape</strong></td>
<td style="height: 23px; width: 262px;" width="340"><strong>Symbol</strong></td>
<td style="height: 23px; width: 247px;" width="506"><strong>Description</strong></td>
</tr>
</thead>
<tbody>
<tr style="background: none;">
<td style="height: 77px; width: 274px;" width="103">Event</td>
<td style="height: 77px; width: 262px;" width="340"><img class="size-full wp-image-97183 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Event-BPMN-Shape.png" alt="Event BPMN Shape" width="75" height="77" /></td>
<td style="height: 77px; width: 247px;" width="506">Represents something that happens during a business process.</td>
</tr>
<tr style="height: 143px;">
<td style="height: 143px; width: 274px;" width="103">Gateway</td>
<td style="height: 143px; width: 262px;" width="340"><img class="size-full wp-image-97184 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Gateway-BPMN-Shape.png" alt="Gateway BPMN Shape" width="180" height="144" /></td>
<td style="height: 143px; width: 247px;" width="506">Used to control the flow of a process.</td>
</tr>
<tr style="height: 141px;">
<td style="height: 141px; width: 274px;" width="103">Activity</td>
<td style="height: 141px; width: 262px;" width="340"><img class="size-full wp-image-97185 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Activity-BPMN-Shape.png" alt="Activity BPMN Shape" width="176" height="141" /></td>
<td style="height: 141px; width: 247px;" width="506">Describes the kind of work being done in a particular process instance.</td>
</tr>
<tr style="height: 102px;">
<td style="height: 102px; width: 274px;" width="103">Message</td>
<td style="height: 102px; width: 262px;" width="340"><img class="size-full wp-image-97186 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Message-BPMN-Shape.png" alt="Message BPMN Shape" width="140" height="102" /></td>
<td style="height: 102px; width: 247px;" width="506">The content of a communication.</td>
</tr>
<tr style="height: 134px;">
<td style="height: 134px; width: 274px;" width="103">DataStore</td>
<td style="height: 134px; width: 262px;" width="340"><img class="size-full wp-image-97187 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/DataStore-BPMN-Shape.png" alt="DataStore BPMN Shape" width="177" height="135" /></td>
<td style="height: 134px; width: 247px;" width="506">Store or access data associated with a business process.</td>
</tr>
<tr style="height: 124px;">
<td style="height: 124px; width: 274px;" width="103">DataObject</td>
<td style="height: 124px; width: 262px;" width="340"><img class="size-full wp-image-97188 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/DataObject-BPMN-Shape.png" alt="DataObject BPMN Shape" width="110" height="124" /></td>
<td style="height: 124px; width: 247px;" width="506">Represents information flowing with the process. Examples: data placed into a process, data resulting from a process, or data that needs to be collected or stored.</td>
</tr>
<tr style="height: 172px;">
<td style="height: 172px; width: 274px;" width="103">TextAnnotation</td>
<td style="height: 172px; width: 262px;" width="340"><img class="size-full wp-image-97189 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/TextAnnotation-BPMN-Shape.png" alt="TextAnnotation BPMN Shape" width="227" height="172" /></td>
<td style="height: 172px; width: 247px;" width="506">Points at or references another BPMN shape.</td>
</tr>
<tr style="height: 237px;">
<td style="height: 237px; width: 274px;" width="103">Group</td>
<td style="height: 237px; width: 262px;" width="340"><img class="size-full wp-image-97190 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Group-BPMN-Shape.png" alt="Group BPMN Shape" width="351" height="245" /></td>
<td style="height: 237px; width: 247px;" width="506">Organizes tasks or processes that are significant in the overall process.</td>
</tr>
<tr style="height: 232px;">
<td style="height: 232px; width: 274px;" width="103">ExpandedSubProcess</td>
<td style="height: 232px; width: 262px;" width="340"><img class="size-full wp-image-97191 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/ExpandedSubProcess-BPMN-Shape.png" alt="ExpandedSubProcess BPMN Shape" width="367" height="251" /></td>
<td style="height: 232px; width: 247px;" width="506">The extended version of the Group symbol.</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px; width: 274px;" width="103">SequenceFlow</td>
<td style="height: 23px; width: 262px;" width="340"><img class="size-full wp-image-97192 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/SequenceFlow-BPMN-Shape.png" alt="SequenceFlow BPMN Shape" width="196" height="77" /></td>
<td style="height: 23px; width: 247px;" width="506">Represents the typical path between two flow objects.</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px; width: 274px;" width="103">DefaultSequenceFlow</td>
<td style="height: 23px; width: 262px;" width="340"><img class="size-full wp-image-97193 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/DefaultSequenceFlow-BPMN-Shape.png" alt="DefaultSequenceFlow BPMN Shape" width="190" height="60" /></td>
<td style="height: 23px; width: 247px;" width="506">Represents the default sequence flow when other conditional flows are not valid. It is indicated by a backslash at the beginning of the sequence.</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px; width: 274px;" width="103">ConditionalSequenceflow</td>
<td style="height: 23px; width: 262px;" width="340"><img class="size-full wp-image-97194 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/ConditionalSequenceflow-BPMN-Shape.png" alt="ConditionalSequenceflow BPMN Shape" width="199" height="64" /></td>
<td style="height: 23px; width: 247px;" width="506">Controls the flow of a process based on certain conditions.</td>
</tr>
<tr style="height: 47px;">
<td style="height: 47px; width: 274px;" width="103">Association</td>
<td style="height: 47px; width: 262px;" width="340"><img class="size-full wp-image-97195 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Association-BPMN-Shape.png" alt="Association BPMN Shape" width="187" height="59" /></td>
<td style="width: 247px;" width="149">Represents a relationship between artifacts and flow objects. This is represented as a dotted line.</td>
</tr>
<tr style="height: 47px;">
<td style="height: 47px; width: 274px;" width="103">DirectionalAssociation</td>
<td style="height: 47px; width: 262px;" width="340"><img class="size-full wp-image-97196 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/DirectionalAssociation-BPMN-Shape.png" alt="DirectionalAssociation BPMN Shape" width="182" height="62" /></td>
<td style="height: 47px; width: 247px;" width="506">A directional association is used with data objects to show that they are either an input or output from an activity. This is represented as a dotted line with an arrow at one end.</td>
</tr>
<tr style="height: 47px;">
<td style="height: 47px; width: 274px;" width="103">BiDirectionalAssociation</td>
<td style="height: 47px; width: 262px;" width="340"><img class="size-full wp-image-97197 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/BiDirectionalAssociation-BPMN-Shape.png" alt="BiDirectionalAssociation BPMN Shape" width="194" height="67" /></td>
<td style="height: 47px; width: 247px;" width="506">A bidirectional association is used with data objects to show that they are both input and output from an activity. This is represented as a dotted line with an arrow at both ends.</td>
</tr>
<tr style="height: 23px;">
<td style="height: 23px; width: 274px;" width="103">MessageFlow</td>
<td style="height: 23px; width: 262px;" width="340"><img class="size-full wp-image-97199 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/MessageFlow-BPMN-Shape.png" alt="MessageFlow BPMN Shape" width="201" height="70" /></td>
<td style="height: 23px; width: 247px;" width="506">Shows the flow of messages between two participants.</td>
</tr>
<tr style="height: 47px;">
<td style="height: 47px; width: 274px;" width="103">InitiatingMessageflow</td>
<td style="height: 47px; width: 262px;" width="340"><img class="size-full wp-image-97200 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/InitiatingMessageflow-BPMN-Shape.png" alt="InitiatingMessageflow BPMN Shape" width="185" height="100" /></td>
<td style="height: 47px; width: 247px;" width="506">Represents an activity or event in one pool which can initiate a message to another pool.</td>
</tr>
<tr style="height: 47px;">
<td style="height: 47px; width: 274px;" width="103">NonInitiatingMessageflow</td>
<td style="height: 47px; width: 262px;" width="340"><img class="size-full wp-image-97201 aligncenter" src="https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/NonInitiatingMessageflow-BPMN-Shape.png" alt="NonInitiatingMessageflow BPMN Shape" width="176" height="96" /></td>
<td style="height: 47px; width: 247px;" width="506">Represents an activity or event in one pool which can’t initiate a message to another pool.</td>
</tr>
</tbody>
</table>

## Create the WPF application

Refer to the [documentation on creating your first WPF app](https://docs.microsoft.com/en-us/dotnet/desktop/wpf/getting-started/walkthrough-my-first-wpf-desktop-application?view=netframeworkdesktop-4.8 "Tutorial: Create your first WPF application in Visual Studio 2019") to build a new WPF app using Visual Studio and run it.

## Create the BPMN editor surface using WPF Diagram control

Add the WPF Diagram (SfDiagram) control to the app by dragging it from the Toolbox and dropping it in the Designer view. You can also manually add it using the XAML/C# code.

The following code example shows how to add the diagram canvas to your WPF application.

```html
<syncfusion:SfDiagram Grid.Column="1">
    <syncfusion:SfDiagram.HorizontalRuler>
        <syncfusion:Ruler/>
    </syncfusion:SfDiagram.HorizontalRuler>
    <syncfusion:SfDiagram.SnapSettings>
        <syncfusion:SnapSettings SnapConstraints="ShowLines"/>
    </syncfusion:SfDiagram.SnapSettings>
    <syncfusion:SfDiagram.VerticalRuler>
        <syncfusion:Ruler Orientation="Vertical"/>
    </syncfusion:SfDiagram.VerticalRuler>
    <syncfusion:SfDiagram.Nodes>
        <syncfusion:NodeCollection/>
    </syncfusion:SfDiagram.Nodes>
    <syncfusion:SfDiagram.Connectors>
        <syncfusion:ConnectorCollection/>
    </syncfusion:SfDiagram.Connectors>
    <syncfusion:SfDiagram.Groups>
        <syncfusion:GroupCollection/>
    </syncfusion:SfDiagram.Groups>
</syncfusion:SfDiagram>
```

The following screenshot shows the created diagramming page.

![Creating the Diagram Canvas in the WPF Application](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Creating-the-Diagram-Canvas-in-the-WPF-Application-1.png)
_Creating the Diagram Canvas in the WPF Application_

**Note:** For more details, refer to the [Getting Started with WPF Diagram documentation](https://help.syncfusion.com/wpf/diagram/getting-started "Getting Started with WPF Diagram").

## Create reusable BPMN symbols using WPF Diagram control

The WPF Diagram control provides a gallery of reusable symbols and diagram elements called [stencil](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.Diagram.Stencil.Stencil.html "Stencil Class of WPF Diagram Control"). We can drag and drop them onto the diagram canvas any number of times.

Let’s see how to create stencils using our built-in BPMN shapes. The WPF Diagram control provides a set of predefined categories of shapes. We can load the built-in shape categories into the stencils by specifying the Keys and Title properties of the [StencilCategory](https://help.syncfusion.com/cr/wpf/Syncfusion.UI.Xaml.Diagram.Stencil.StencilCategory.html "StencilCategory Class of WPF Diagram Control") class. The properties do the following:

- **Keys** : Specifies the static resource key name value of the category collection.
- **Title** : Specifies the title that should be displayed as a header of the category collection.

The following code explains how to create stencils with the BPMN shapes using the **BPMNEditorShapes** categories.

```html
<syncfusion:Stencil x:Name="stencil" Grid.Column="0" BorderThickness="0,1,1,1" Title="Shapes">
    <syncfusion:Stencil.Categories>
        <syncfusion:StencilCategoryCollection>
            <!--Specify the basic shapes category with title and resource key-->
            <syncfusion:StencilCategory Title="BPMN Shapes" Keys="{StaticResource BPMNEditorShapes}"/>
        </syncfusion:StencilCategoryCollection>
    </syncfusion:Stencil.Categories>
    <syncfusion:Stencil.SymbolGroups>
        <syncfusion:SymbolGroups>
            <!--Separate groups based on the key-->
            <syncfusion:SymbolGroupProvider MappingName="Key"/>
        </syncfusion:SymbolGroups>
    </syncfusion:Stencil.SymbolGroups>
</syncfusion:Stencil>
```

The following screenshot shows the collection of BPMN editor shapes as stencils.

![A Gallery of Reusable BPMN Shapes in the WPF Diagram Control](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/A-Gallery-of-Reusable-BPMN-Shapes-in-the-WPF-Diagram-Control-1.png)
<figcaption>A Gallery of Reusable BPMN Shapes in the WPF Diagram Control</figcaption>

**Note: ** Refer to the [Stencil in WPF Diagram documentation](https://help.syncfusion.com/wpf/diagram/stencil "Stencil in WPF Diagram") for more info on adding custom shapes, shape categories, and customizing the stencil appearances.

## Create the BPMN diagram editor using WPF Diagram control

Now we can easily create the BPMN diagram editor using the WPF Diagram control by dragging and dropping the BPMN symbols from the stencils, and then arranging and connecting them.

### Step #1: Add BPMN symbols to the editor

Start by dragging symbols onto the diagramming canvas from the **BPMN Shapes** stencils. Arrange them into an order that makes it clear where the business process start and endpoints are, and how the various nodes are linked. People who read the diagram should be able to see where to start and how to follow the connections.

Refer to the following GIF image.

![Adding BPMN Symbols to the Canvas in the WPF Diagram Control](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Adding-BPMN-Symbols-to-the-Canvas-in-the-WPF-Diagram-Control.gif)
<figcaption>Adding BPMN Symbols to the Canvas in the WPF Diagram Control</figcaption>

### Step #2: Connect BPMN symbols

Each diagram symbol has a **Draw** quick command  ![Draw quick command](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Draw-quick-command.png)  which is visible on selecting any diagram symbol. This quick command helps us to create a connection between symbols by clicking and dragging a connector and dropping it on another symbol.

Refer to the following GIF image.

![Connecting BPMN Shapes in BPMN Diagram Using the Draw Quick Command in WPF Diagram Control](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Connecting-BPMN-Shapes-in-BPMN-Diagram-Using-the-Draw-Quick-Command-in-WPF-Diagram-Control.gif)
<figcaption>Connecting BPMN Shapes in BPMN Diagram Using the Draw Quick Command in WPF Diagram Control</figcaption>

**Note:** Refer to the [Quick Command in WPF Diagram Control documentation](https://help.syncfusion.com/wpf/diagram/interaction/userhandle "Quick Command in WPF Diagram") to learn how to add or remove default/custom quick commands in your app and customize their appearance.

You can also create connectors by selecting the **Connector** tool  ![Connector tool](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Connector-tool.png)  from the toolbar or using the **Tools > Connector tool** menu option. Click a symbol and drag a connector to another shape. When you are done, click the **Pointer** tool ![Pointer tool](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Pointer-tool.png)  on the toolbar to select the symbols.

![Creating Connectors Using Connector and Pointer Tools in WPF Diagram Control](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Creating-Connectors-Using-Connector-and-Pointer-Tools-in-WPF-Diagram-Control.gif)
<figcaption>Creating Connectors Using Connector and Pointer Tools in WPF Diagram Control</figcaption>

**Note:** For more details, refer to the [Tools in WPF Diagram documentation](https://help.syncfusion.com/wpf/diagram/tools "Tools in WPF Diagram").

### Step #3: Add labels to symbols

To add text to any BPMN node, double-tap on the node or select the node and press **F2**. A text box will appear to type the required text. When you are done, press the **Esc** key or deselect the node.

Refer to the following GIF image.

![Adding Labels to Nodes in WPF Diagram Control](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Adding-Labels-to-Nodes-in-WPF-Diagram-Control.gif)
<figcaption>Adding Labels to Nodes in WPF Diagram Control</figcaption>

**Note:** Refer to the [Annotations in WPF Diagram documentation](https://help.syncfusion.com/wpf/diagram/annotation/defineannotation "Annotation in WPF Diagram") to see how to add labels in your diagram and customize its appearance.

### Step #4: Load and save a diagram

The WPF Diagram control provides the flexibility to save your current work and resume it by loading the saved diagram back to the diagram canvas. Use the **Save** button  ![Save button](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Save-button.png)  to save your current diagram to the local drive and use the **Open** button  ![Open button](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Open-button.png)  to load the existing diagram file from your local drive.

Refer to the following GIF image.

![Loading and Saving a BPMN Diagram in the WPF Diagram Control](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Loading-and-Saving-a-BPMN-Diagram-in-the-WPF-Diagram-Control.gif)
</figcaption>Loading and Saving a BPMN Diagram in the WPF Diagram Control</figcaption>

**Note:** Refer to the [loading](https://help.syncfusion.com/wpf/diagram/serialization#load "Loading BPMN Diagram in WPF Diagram Control") and [saving diagrams in WPF Diagram](https://help.syncfusion.com/wpf/diagram/serialization#save "Saving BPMN Diagram in WPF Diagram Control") documentation.

### Step #5: Export the diagram

You can export the diagram to PDF format or an image format (JPEG, PNG, BMP, TIF, GIF, and more). To do so, click the **Export** button ![Export button](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Export-button.png)  or select the **File > Export** menu command.

![Exporting the BPMN Diagram in Image Format](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Exporting-the-BPMN-Diagram-in-Image-Format.gif)
<figcaption>Exporting the BPMN Diagram in Image Format</figcaption>

**Note:** For more details, refer to the [Exporting in WPF Diagram documentation](https://help.syncfusion.com/wpf/diagram/exporting "Exporting in WPF Diagram").

### Step #6: Print the diagram

Print a diagram by clicking the **Print** button ![Print button](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Print-button.png)  in the toolbar or selecting the **File > Print** menu command.

The following screenshot shows the Print Diagram dialog along with the custom print options.

![Diagram Print Options](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Diagram-Print-Options-1.png)
<figcaption>Diagram Print Options</figcaption>

**Note:** For more details, refer to the [Printing in WPF Diagram documentation](https://help.syncfusion.com/wpf/diagram/printing "Printing in WPF Diagram").

### Step 7: Pan and zoom

The WPF Diagram control provides support to pan and zoom the diagram in different ways.

#### Pan and zoom using the keyboard

1. Press and hold the  **Ctrl ** and  **Shift**  keys. The pointer will turn into a magnifying glass.
2. Do any of the following:

- Click the left mouse button to enlarge the view.
- Click the right mouse button to reduce the view.
- Click and drag the left mouse button over a region you want to zoom into.
- Right-click and drag to pan the diagram.

#### Pan and zoom using the scroll wheel

Do any of the following:

- To scroll up or down, rotate the scroll wheel forward or backward.
- To scroll left or right, hold down  **Shift ** as you rotate the scroll wheel forward or backward.
- To zoom in or out, hold down  **Ctrl ** as you rotate the scroll wheel forward or backward.

#### Zoom using the zoom controls

The zoom controls are in the **Zoom** ribbon bar of the **View** tab. Click the **Zoom Out** and **Zoom In** buttons to change the zoom level of the diagram. Also, you can make the entire diagram fit into the current view by clicking the **Fit to Window** button.

#### Pan using the pan tool

You can pan the diagram by selecting the  **Pan** tool  ![Pan tool](https://www.syncfusion.com/blogs/wp-content/uploads/2022/02/Pan-tool.png)  from the **Tools** ribbon bar of the **Home** tab. Then, click and drag the mouse to pan the diagram.

## GitHub reference

You can download an example of [creating a BPMN editor using WPF Diagram control](https://github.com/syncfusion/wpf-demos/tree/master/showcase/bpmn%20editor "creating a BPMN editor using WPF Diagram control demo on GitHub") from GitHub.

## Conclusion

Thanks for reading! In this blog, we have seen how to create an interactive BPMN editor using the versatile features of the Syncfusion [WPF Diagram control](https://www.syncfusion.com/wpf-ui-controls/diagram "WPF Diagram control"). Now we can easily demonstrate business workflows! Try it out and leave feedback in the comments section below!

Similarly, you can use our Diagram control to build editors for organizational charts, flowcharts, network diagrams, or logic circuit diagrams.

If you’re already a Syncfusion user, you can download the product setup from [our website](https://www.syncfusion.com/account/downloads "License and download page of Essential Studio"). Otherwise, you can download a [30-day free trial](https://www.syncfusion.com/downloads/wpf/ "Free evaluation of the Syncfusion Essential Studio").

You can contact us through our [support forum](https://www.syncfusion.com/forums "Syncfusion support forum"), [support portal](https://support.syncfusion.com/ "Syncfusion support portal"), or [feedback portal](https://www.syncfusion.com/feedback/wpf "Syncfusion Feedback Portal"). We are always happy to assist you.

## Related blogs

- [Save Memory by Exporting and Importing Annotations in WPF PDF Viewer](https://www.syncfusion.com/blogs/post/save-memory-by-exporting-and-importing-annotations-in-wpf-pdf-viewer.aspx "Save Memory by Exporting and Importing Annotations in WPF PDF Viewer blog")
- [Everything You Need to Know About Syncfusion WPF Diagram Control](https://www.syncfusion.com/blogs/post/everything-to-know-about-our-wpf-diagram.aspx "Everything You Need to Know About Syncfusion WPF Diagram Control blog")
- [How to Display Alerts for Appointments in WPF Scheduler](https://www.syncfusion.com/blogs/post/how-to-display-alerts-for-appointments-in-wpf-scheduler.aspx "How to Display Alerts for Appointments in WPF Scheduler blog")
- [Build Digital Logic Circuits Easily with Our WPF Diagram Control](https://www.syncfusion.com/blogs/post/build-digital-logic-circuits-easily-with-our-wpf-diagram-control.aspx "Build Digital Logic Circuits Easily with Our WPF Diagram Control blog")