From ed3e71dfdd9f8d808d792ab0b6fe737e7c00cd4f Mon Sep 17 00:00:00 2001 From: Serge Pilipchuk <112853396+sergepilipchuk@users.noreply.github.com> Date: Tue, 16 Sep 2025 13:45:23 +0400 Subject: [PATCH 1/4] Update readme file (new template) --- ... => DisconnectedGraphsLayoutCalculator.cs} | 0 CS/MsaglHelpers/MsaglHelpers.csproj | 2 +- Images/diagram-layouts.jpg | Bin 0 -> 182763 bytes Readme.md | 41 +++++++++++++----- ... => DisconnectedGraphsLayoutCalculator.vb} | 0 VB/MsaglHelpers/MsaglHelpers.vbproj | 2 +- 6 files changed, 31 insertions(+), 14 deletions(-) rename CS/MsaglHelpers/LayoutCalculators/{DisconnectedGraphsLayoutCaculator.cs => DisconnectedGraphsLayoutCalculator.cs} (100%) create mode 100644 Images/diagram-layouts.jpg rename VB/MsaglHelpers/LayoutCalculators/{DisconnectedGraphsLayoutCaculator.vb => DisconnectedGraphsLayoutCalculator.vb} (100%) diff --git a/CS/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCaculator.cs b/CS/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCalculator.cs similarity index 100% rename from CS/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCaculator.cs rename to CS/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCalculator.cs diff --git a/CS/MsaglHelpers/MsaglHelpers.csproj b/CS/MsaglHelpers/MsaglHelpers.csproj index a831f74..04b8915 100644 --- a/CS/MsaglHelpers/MsaglHelpers.csproj +++ b/CS/MsaglHelpers/MsaglHelpers.csproj @@ -74,7 +74,7 @@ - + diff --git a/Images/diagram-layouts.jpg b/Images/diagram-layouts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a443be031c77753e9fb5c668599f89e79672c7fa GIT binary patch literal 182763 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%0A(GrtFa`y~G?p9j;k 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 z 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

rY;6^*_1)WaW$Zwx08q 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 !4kyKgrr8oSq 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 - -*Files to look at*: + +# WPF Diagram Control - Microsoft Automatic Graph Layout (MSAGL) Algorithms + +This example connects the [Microsoft Automatic Graph Layout (MSAGL)](https://github.com/Microsoft/automatic-graph-layout) library to [`DiagramControl`](https://docs.devexpress.com/WPF/DevExpress.Xpf.Diagram.DiagramControl). This technic allows you apply advanced algorithms such as **Sugiyama**, **Ranking**, **PhyloTree**, **MDS**, or **Disconnected Graphs** with one click. + +![Diagram Control - Microsoft Automatic Graph Layout (MSAGL) Algorithms](./Images/diagram-layouts.jpg) + +## Implementation Details + +... + +## Files to Review * [LayoutExampleWindow.xaml](./CS/DXDiagram.CustomLayoutAlgorithms/LayoutExampleWindow.xaml) (VB: [LayoutExampleWindow.xaml](./VB/DXDiagram.CustomLayoutAlgorithms/LayoutExampleWindow.xaml)) * [LayoutExampleWindow.xaml.cs](./CS/DXDiagram.CustomLayoutAlgorithms/LayoutExampleWindow.xaml.cs) (VB: [LayoutExampleWindow.xaml.vb](./VB/DXDiagram.CustomLayoutAlgorithms/LayoutExampleWindow.xaml.vb)) @@ -14,7 +23,7 @@ * [Converter.cs](./CS/MsaglHelpers/Converter.cs) (VB: [Converter.vb](./VB/MsaglHelpers/Converter.vb)) * [GraphLayout.cs](./CS/MsaglHelpers/Layout/GraphLayout.cs) (VB: [GraphLayout.vb](./VB/MsaglHelpers/Layout/GraphLayout.vb)) * [PhyloTreeLayout.cs](./CS/MsaglHelpers/Layout/PhyloTreeLayout.cs) (VB: [PhyloTreeLayout.vb](./VB/MsaglHelpers/Layout/PhyloTreeLayout.vb)) -* [DisconnectedGraphsLayoutCaculator.cs](./CS/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCaculator.cs) (VB: [DisconnectedGraphsLayoutCaculator.vb](./VB/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCaculator.vb)) +* [DisconnectedGraphsLayoutCalculator.cs](./CS/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCalculator.cs) (VB: [DisconnectedGraphsLayoutCalculator.vb](./VB/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCalculator.vb)) * [ILayoutCalculator.cs](./CS/MsaglHelpers/LayoutCalculators/ILayoutCalculator.cs) (VB: [ILayoutCalculator.vb](./VB/MsaglHelpers/LayoutCalculators/ILayoutCalculator.vb)) * [MDSLayoutCalculator.cs](./CS/MsaglHelpers/LayoutCalculators/MDSLayoutCalculator.cs) (VB: [MDSLayoutCalculator.vb](./VB/MsaglHelpers/LayoutCalculators/MDSLayoutCalculator.vb)) * [PhyloTreeLayoutCalculator.cs](./CS/MsaglHelpers/LayoutCalculators/PhyloTreeLayoutCalculator.cs) (VB: [PhyloTreeLayoutCalculator.vb](./VB/MsaglHelpers/LayoutCalculators/PhyloTreeLayoutCalculator.vb)) @@ -22,19 +31,27 @@ * [SugiyamaLayoutCalculator.cs](./CS/MsaglHelpers/LayoutCalculators/SugiyamaLayoutCalculator.cs) (VB: [SugiyamaLayoutCalculator.vb](./VB/MsaglHelpers/LayoutCalculators/SugiyamaLayoutCalculator.vb)) * [MsaglGeometryGraphHelpers.cs](./CS/MsaglHelpers/MsaglGeometryGraphHelpers.cs) (VB: [MsaglGeometryGraphHelpers.vb](./VB/MsaglHelpers/MsaglGeometryGraphHelpers.vb)) * [RoutingHelper.cs](./CS/MsaglHelpers/RoutingHelper.cs) (VB: [RoutingHelper.vb](./VB/MsaglHelpers/RoutingHelper.vb)) - -# WPF Diagram Control - Microsoft Automatic Graph Layout (MSAGL) Algorithms +## Documentation + +* [DiagramControl](https://docs.devexpress.com/WPF/DevExpress.Xpf.Diagram.DiagramControl) +* [Diagram Items](https://docs.devexpress.com/WPF/116675/controls-and-libraries/diagram-control/diagram-items) +* [DiagramDesignerControl](https://docs.devexpress.com/WPF/DevExpress.Xpf.Diagram.DiagramDesignerControl) +* [RibbonControl](https://docs.devexpress.com/WPF/DevExpress.Xpf.Ribbon.RibbonControl) +* [RibbonPageCategory](https://docs.devexpress.com/WPF/DevExpress.Xpf.Ribbon.RibbonPageCategory) +* [RibbonPage](https://docs.devexpress.com/WPF/DevExpress.Xpf.Ribbon.RibbonPage) -DiagramControl provides two methods that make it easier to use external graph layout algorithms to arrange diagram shapes. The GraphOperations.GetDiagramGraph method reads the diagram currently loaded into DiagramControl and returns the Graph object that contains collections of edges and nodes represented by diagram items. You can use this information to calculate positions for diagram shapes. Then, for every shape, create the PositionInfo object containing the shape reference and its position. To apply the layout to the loaded diagram, call the DiagramControl.RelayoutDiagramItems method that accepts the collection of PositionInfo objects.

This example demonstrates how the GetDiagramGraph and RelayoutDiagramItems methods can be used to connect the 
Microsoft Automatic Graph Layout (MSAGL) library to DiagramControl. +## More Examples -
+* [WPF DiagramControl - Create Custom Shapes with Connection Points](https://github.com/DevExpress-Examples/wpf-diagramdesigner-create-custom-shapes-with-connection-points) +* [WPF DiagramControl - Create Custom Context Menus](https://github.com/DevExpress-Examples/wpf-diagram-custom-context-menu) +* [WPF Diagram Control - Track and Restrict Drag Actions](https://github.com/DevExpress-Examples/wpf-diagram-track-and-restrict-drag-actions) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=wpf-diagram-ms-automatic-graph-layout-algorithms&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=wpf-diagram-ms-automatic-graph-layout-algorithms&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=wpf-diagram-ms-automatic-graph-layout-algorithms&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=wpf-diagram-ms-automatic-graph-layout-algorithms&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) diff --git a/VB/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCaculator.vb b/VB/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCalculator.vb similarity index 100% rename from VB/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCaculator.vb rename to VB/MsaglHelpers/LayoutCalculators/DisconnectedGraphsLayoutCalculator.vb diff --git a/VB/MsaglHelpers/MsaglHelpers.vbproj b/VB/MsaglHelpers/MsaglHelpers.vbproj index 18640e4..f8a9d48 100644 --- a/VB/MsaglHelpers/MsaglHelpers.vbproj +++ b/VB/MsaglHelpers/MsaglHelpers.vbproj @@ -85,7 +85,7 @@ - + From 2ae2c7fffad4b38be96b3177bf579beedd51932f Mon Sep 17 00:00:00 2001 From: Serge Pilipchuk <112853396+sergepilipchuk@users.noreply.github.com> Date: Wed, 17 Sep 2025 11:00:01 +0400 Subject: [PATCH 2/4] Update implementation details --- Readme.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index f24e66d..f4216f8 100644 --- a/Readme.md +++ b/Readme.md @@ -12,7 +12,90 @@ This example connects the [Microsoft Automatic Graph Layout (MSAGL)](https://git ## Implementation Details -... +### Load Sample Graph + +The application loads a diagram from an XML file before applying a layout. This example includes five datasets: **Sugiyama**, **Ranking**, **PhyloTree**, **MDS**, and **Disconnected Graphs**. + +```csharp +void LoadSugiyama(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e) { + diagramControl.LoadDocument("Data/SugiyamaLayout.xml"); +} +void LoadMDS(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e) { + diagramControl.LoadDocument("Data/MDSLayout.xml"); +} +// … similar for Ranking, PhyloTree, DisconnectedGraphs +``` + +### Extract and Arrange Nodes + +The `GraphOperations.GetDiagramGraph` extracts nodes and edges from the diagram. The selected MSAGL calculator computes positions, which are then applied to the diagram: + +```csharp +void ApplyLayout(GraphLayout layout) { + try { + diagramControl.RelayoutDiagramItems( + layout.RelayoutGraphNodesPosition(GraphOperations.GetDiagramGraph(diagramControl)) + ); + diagramControl.Items.OfType().ForEach(connector => { + connector.Type = layout.GetDiagramConnectorType(); + connector.UpdateRoute(); + }); + diagramControl.FitToDrawing(); + } catch(Exception e) { + DXMessageBox.Show(string.Format("Error message: '{0}'", e.Message), "Error has been occurred"); + } +} +``` + +### Update Connectors + +After shapes are repositioned, connectors update routs. The code example sets connector types and updates their routes: + +```csharp +diagramControl.Items.OfType().ForEach(connector => { + connector.Type = layout.GetDiagramConnectorType(); + connector.UpdateRoute(); +}); +``` + +The controller also registers a routing strategy: + +```csharp +diagramControl.Controller.RegisterRoutingStrategy( + layout.GetDiagramConnectorType(), + layout.GetDiagramRoutingStrategy() +); +``` + +### Display Entire Diagram + +The `DiagramControl` adjusts its viewport to display the entire diagram: + +```csharp +diagramControl.FitToDrawing(); +``` + +### Ribbon commands + +Ribbon buttons load documents and apply the corresponding algorithm: + +```csharp +void ApplySugiyama(object s, ItemClickEventArgs e) { + ApplyLayout(new GraphLayout(new SugiyamaLayoutCalculator())); +} +void ApplyRanking(object s, ItemClickEventArgs e) { + ApplyLayout(new GraphLayout(new RankingLayoutCalculator())); +} +void ApplyPhyloTree(object s, ItemClickEventArgs e) { + ApplyLayout(new PhyloTreeLayout(new PhyloTreeLayoutCalculator())); +} +void ApplyMDS(object s, ItemClickEventArgs e) { + ApplyLayout(new GraphLayout(new MDSLayoutCalculator())); +} +void ApplyDisconnectedGraphs(object s, ItemClickEventArgs e) { + ApplyLayout(new GraphLayout(new DisconnectedGraphsLayoutCalculator())); +} +``` ## Files to Review @@ -47,7 +130,6 @@ This example connects the [Microsoft Automatic Graph Layout (MSAGL)](https://git * [WPF DiagramControl - Create Custom Context Menus](https://github.com/DevExpress-Examples/wpf-diagram-custom-context-menu) * [WPF Diagram Control - Track and Restrict Drag Actions](https://github.com/DevExpress-Examples/wpf-diagram-track-and-restrict-drag-actions) - ## Does this example address your development requirements/objectives? From ea83bc2f270030cb14dea32962e1f321f71833f1 Mon Sep 17 00:00:00 2001 From: Serge Pilipchuk <112853396+sergepilipchuk@users.noreply.github.com> Date: Wed, 17 Sep 2025 15:42:25 +0400 Subject: [PATCH 3/4] Update after review (support) --- Readme.md | 45 +++++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/Readme.md b/Readme.md index f4216f8..15256cd 100644 --- a/Readme.md +++ b/Readme.md @@ -6,50 +6,39 @@ # WPF Diagram Control - Microsoft Automatic Graph Layout (MSAGL) Algorithms -This example connects the [Microsoft Automatic Graph Layout (MSAGL)](https://github.com/Microsoft/automatic-graph-layout) library to [`DiagramControl`](https://docs.devexpress.com/WPF/DevExpress.Xpf.Diagram.DiagramControl). This technic allows you apply advanced algorithms such as **Sugiyama**, **Ranking**, **PhyloTree**, **MDS**, or **Disconnected Graphs** with one click. +This example integrates custom layout algorithms with [`DiagramControl`](https://docs.devexpress.com/WPF/DevExpress.Xpf.Diagram.DiagramControl). You can extract a graph from the diagram, process the graph with an external algorithm, and apply calculated positions back to diagram items. This technic allows you apply advanced or custom algorithms with one click. ![Diagram Control - Microsoft Automatic Graph Layout (MSAGL) Algorithms](./Images/diagram-layouts.jpg) ## Implementation Details -### Load Sample Graph +### Extract Current Graph -The application loads a diagram from an XML file before applying a layout. This example includes five datasets: **Sugiyama**, **Ranking**, **PhyloTree**, **MDS**, and **Disconnected Graphs**. +Use the `GraphOperations.GetDiagramGraph` method to extract the current diagram. The method returns a `Graph` object that contains the collections of nodes and edges represented by diagram items: ```csharp -void LoadSugiyama(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e) { - diagramControl.LoadDocument("Data/SugiyamaLayout.xml"); -} -void LoadMDS(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e) { - diagramControl.LoadDocument("Data/MDSLayout.xml"); -} -// … similar for Ranking, PhyloTree, DisconnectedGraphs +GraphOperations.GetDiagramGraph(diagramControl); ``` -### Extract and Arrange Nodes +### Create Position Info -The `GraphOperations.GetDiagramGraph` extracts nodes and edges from the diagram. The selected MSAGL calculator computes positions, which are then applied to the diagram: +For each shape, create a `PositionInfo` object that contains a reference to the shape and its calculated position: ```csharp -void ApplyLayout(GraphLayout layout) { - try { - diagramControl.RelayoutDiagramItems( - layout.RelayoutGraphNodesPosition(GraphOperations.GetDiagramGraph(diagramControl)) - ); - diagramControl.Items.OfType().ForEach(connector => { - connector.Type = layout.GetDiagramConnectorType(); - connector.UpdateRoute(); - }); - diagramControl.FitToDrawing(); - } catch(Exception e) { - DXMessageBox.Show(string.Format("Error message: '{0}'", e.Message), "Error has been occurred"); - } -} +layout.RelayoutGraphNodesPosition(GraphOperations.GetDiagramGraph(diagramControl)); +``` + +### Apply Layout + +Call the `DiagramControl.RelayoutDiagramItems` method and pass the collection of PositionInfo objects. This updates all shapes on the canvas: + +```csharp +diagramControl.RelayoutDiagramItems(layout.RelayoutGraphNodesPosition(GraphOperations.GetDiagramGraph(diagramControl))); ``` ### Update Connectors -After shapes are repositioned, connectors update routs. The code example sets connector types and updates their routes: +After shapes are repositioned, reroute connectors to reflect the new layout: ```csharp diagramControl.Items.OfType().ForEach(connector => { @@ -69,7 +58,7 @@ diagramControl.Controller.RegisterRoutingStrategy( ### Display Entire Diagram -The `DiagramControl` adjusts its viewport to display the entire diagram: +Fit the view to the drawing to ensure that all elements are visible: ```csharp diagramControl.FitToDrawing(); From 1d6f54d59f4139ce0b73075bdf7bab361c5ff104 Mon Sep 17 00:00:00 2001 From: Serge Pilipchuk <112853396+sergepilipchuk@users.noreply.github.com> Date: Mon, 22 Sep 2025 10:20:51 +0400 Subject: [PATCH 4/4] Add changes after review (fresh eye) --- Readme.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/Readme.md b/Readme.md index 15256cd..d5101de 100644 --- a/Readme.md +++ b/Readme.md @@ -6,13 +6,13 @@ # WPF Diagram Control - Microsoft Automatic Graph Layout (MSAGL) Algorithms -This example integrates custom layout algorithms with [`DiagramControl`](https://docs.devexpress.com/WPF/DevExpress.Xpf.Diagram.DiagramControl). You can extract a graph from the diagram, process the graph with an external algorithm, and apply calculated positions back to diagram items. This technic allows you apply advanced or custom algorithms with one click. +This example integrates **Microsoft Automatic Graph Layout (MSAGL)** algorithms with the WPF [`DiagramControl`](https://docs.devexpress.com/WPF/DevExpress.Xpf.Diagram.DiagramControl). The workflow extracts a graph from the diagram, processes it with an MSAGL algorithm, and applies calculated node positions to diagram items. ![Diagram Control - Microsoft Automatic Graph Layout (MSAGL) Algorithms](./Images/diagram-layouts.jpg) ## Implementation Details -### Extract Current Graph +### Extract the Graph Use the `GraphOperations.GetDiagramGraph` method to extract the current diagram. The method returns a `Graph` object that contains the collections of nodes and edges represented by diagram items: @@ -20,36 +20,40 @@ Use the `GraphOperations.GetDiagramGraph` method to extract the current diagram. GraphOperations.GetDiagramGraph(diagramControl); ``` -### Create Position Info +### Calculate Position Information -For each shape, create a `PositionInfo` object that contains a reference to the shape and its calculated position: +For each shape, calculate diagram shape coordinates and store them in `PositionInfo` objects: ```csharp layout.RelayoutGraphNodesPosition(GraphOperations.GetDiagramGraph(diagramControl)); + +public virtual IEnumerable> RelayoutGraphNodesPosition(Graph graph) { + GeometryGraph = MsaglGeometryGraphHelpers.CreateGeometryGraph(graph); + LayoutCalculator.CalculateLayout(GeometryGraph); + return MsaglGeometryGraphHelpers.GetGetNodesPositionInfo(GeometryGraph); +} ``` ### Apply Layout -Call the `DiagramControl.RelayoutDiagramItems` method and pass the collection of PositionInfo objects. This updates all shapes on the canvas: +Update the diagram with calculated node positions: ```csharp -diagramControl.RelayoutDiagramItems(layout.RelayoutGraphNodesPosition(GraphOperations.GetDiagramGraph(diagramControl))); +diagramControl.RelayoutDiagramItems( + layout.RelayoutGraphNodesPosition(GraphOperations.GetDiagramGraph(diagramControl)) +); ``` -### Update Connectors +### Update Shape Connectors -After shapes are repositioned, reroute connectors to reflect the new layout: +After shapes are repositioned, reroute shape connectors and register a routing strategy: ```csharp diagramControl.Items.OfType().ForEach(connector => { connector.Type = layout.GetDiagramConnectorType(); connector.UpdateRoute(); }); -``` - -The controller also registers a routing strategy: -```csharp diagramControl.Controller.RegisterRoutingStrategy( layout.GetDiagramConnectorType(), layout.GetDiagramRoutingStrategy() @@ -58,7 +62,7 @@ diagramControl.Controller.RegisterRoutingStrategy( ### Display Entire Diagram -Fit the view to the drawing to ensure that all elements are visible: +Fit the view so that all items are visible in the viewport: ```csharp diagramControl.FitToDrawing(); @@ -66,7 +70,7 @@ diagramControl.FitToDrawing(); ### Ribbon commands -Ribbon buttons load documents and apply the corresponding algorithm: +Create ribbon items and handle their `ItemClick` events to apply different MSAGL algorithms: ```csharp void ApplySugiyama(object s, ItemClickEventArgs e) {