Articles in this section
Category / Section

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

1 min read

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)
Please sign in to leave a comment
Access denied
Access denied