React Diagram - Default Shape and Connector Settings
The Diagram component allows you to specify default settings for its items in the following ways:
- Specify settings contained in the defaultItemProperties property.
- Specify data-binding expressions contained in the edges and nodes properties to define common settings for data-bound edges and nodes.
jQuery
index.js
$(function() { $("#diagram").dxDiagram({ defaultItemProperties: { connectorLineType: "straight", style: "stroke-width: 3px", }, nodes: { // ... textStyleExpr: function() {return "fill: green"}, }, edges: { // ... styleExpr: function() {return "stroke: red"}, }, }); });
Angular
app.component.html
app.component.ts
<dx-diagram #diagram id="diagram"> <dxo-default-item-properties connectorLineType="straight" style="stroke-width: 3px"> </dxo-default-item-properties> <dxo-nodes ... [textStyleExpr]="textStyleExpr"></dxo-nodes> <dxo-edges ... [styleExpr]="styleExpr"></dxo-edges> </dx-diagram>
export class AppComponent { //... styleExpr(obj) { return { "stroke": "red" }; } textStyleExpr(obj) { return { "fill": "green" }; } }
Vue
App.vue
<template> <DxDiagram id="diagram" ref="diagram" > <DxDefaultItemProperties :connector-line-type="'straight'" :style="'stroke-width: 3px'" /> <DxNodes ... :text-style-expr="textStyleExpr" /> <DxEdges ... :style-expr="styleExpr" /> </DxDiagram> </template> <script> import { DxDiagram, DxNodes, DxEdges, DxDefaultItemProperties} from 'devextreme-vue/diagram'; export default { components: { DxDiagram, DxNodes, DxEdges, DxDefaultItemProperties }, data() {...}, methods: { textStyleExpr() { return 'fill: green'; }, styleExpr() { return 'stroke: red'; }, } }; </script>
React
App.js
import Diagram, { Nodes, Edges, DefaultItemProperties} from 'devextreme-react/diagram'; // ... render() { return ( <Diagram id="diagram"> <DefaultItemProperties connectorLineType="straight"/> <Nodes ... textStyleExpr={this.itemTextStyleExpr} /> <Edges ... styleExpr={this.itemStyleExpr}/> </Diagram> ); } itemTextStyleExpr(obj) { return { 'fill': 'green' }; } itemStyleExpr(obj) { return { 'stroke': 'red' }; }
ASP.NET Core Controls
DiagramPage.cshtml
@(Html.DevExtreme().Diagram() .ID("diagram") .DefaultItemProperties(prop=> prop .Style("stroke-width: 3px") .ConnectorLineType(DiagramConnectorLineType.Straight) ) .Nodes(ns => ns // ... .TextStyleExpr(new JS("textStyleExpr")) ) .Edges(ns => ns // ... .StyleExpr(new JS("styleExpr")) ) ) <script type="text/javascript"> function textStyleExpr(obj) { return "fill: green"; } function styleExpr(obj) { return "stroke: red"; } </script>
ASP.NET MVC Controls
DiagramPage.cshtml
@(Html.DevExtreme().Diagram() .ID("diagram") .DefaultItemProperties(prop=> prop .Style("stroke-width: 3px") .ConnectorLineType(DiagramConnectorLineType.Straight) ) .Nodes(ns => ns // ... .TextStyleExpr(new JS("textStyleExpr")) ) .Edges(ns => ns // ... .StyleExpr(new JS("styleExpr")) ) ) <script type="text/javascript"> function textStyleExpr(obj) { return "fill: green"; } function styleExpr(obj) { return "stroke: red"; } </script>
Feel free to share topic-related thoughts here.
If you have technical questions, please create a support ticket in the DevExpress Support Center.
Thank you for the feedback!
If you have technical questions, please create a support ticket in the DevExpress Support Center.