Articles in this section
Category / Section

How to get or set the positions of the segments by programmatically in WPF Diagram (SfDiagram)?

The ToPoints() and LoadSegments() methods of the IConnectorInfo can be used to retrieve and update the positions of the connector segments respectively in WPF Diagram (SfDiagram).

XAML

<Grid>
    <syncfusion:SfDiagram x:Name="diagram" PortVisibility="Visible"/>
    <Button x:Name="LoadSegment" Height="50" Width="80" HorizontalAlignment="Left" VerticalAlignment="Top" Click="LoadSegment_Click" Content="Load Segments"/>
</Grid>

C#

public partial class MainWindow : Window
{
  IEnumerable<Point> segmentpoints;
  ConnectorViewModel connector;
  public MainWindow()
  {
    InitializeComponent();
    diagram.Connectors = new ConnectorCollection();
    connector = new ConnectorViewModel()
    {
      SourcePoint = new Point(400, 400),
      TargetPoint = new Point(800, 200),
    };
    (diagram.Connectors as ConnectorCollection).Add(connector);
    (diagram.Info as IGraphInfo).ConnectorEditing += MainWindow_ConnectorEditing;
  }
 
  private void MainWindow_ConnectorEditing(object sender, ConnectorEditingEventArgs args)
  {
    if (args.Item is ConnectorViewModel)
    {
      segmentpoints = ((args.Item as ConnectorViewModel).Info as IConnectorInfo).ToPoints();
    }
  }
 
  private void LoadSegment_Click(object sender, RoutedEventArgs e)
  {
    segmentpoints = new List<Point>() { new Point(20, 20), new Point(30, 30) };
    (connector.Info as IConnectorInfo).LoadSegments(segmentpoints);
  }
}

View Sample in GitHub

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Access denied
Access denied