Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic Clickable point on a DiagramLink (Read 1826 times)
j poz
Junior Member
**
Offline


I Love MindFusion!

Posts: 78
Joined: Nov 21st, 2012
Clickable point on a DiagramLink
Aug 21st, 2015 at 4:37pm
Print Post  
I would like to determine a point on the Diagram where a DiagramLink is clickable, no matter what style link it is (straight, cascading, etc). How would I figure something like this out?
  
Back to top
 
IP Logged
 
Stoyo
God Member
*****
Offline


MindFusion support

Posts: 13230
Joined: Jul 20th, 2005
Re: Clickable point on a DiagramLink
Reply #1 - Aug 21st, 2015 at 5:50pm
Print Post  
Try this method:

Code
Select All
PointF MiddlePoint(DiagramLink link)
{
	var points = link.ControlPoints;
	if (link.SegmentCount % 2 == 0)
		return points[points.Count / 2];

	return link.Shape == LinkShape.Bezier ?
		Utilities.GetBezierPt(points, link.SegmentCount / 2, 0.5f) :
		InternalUtils.MidPoint(points[points.Count / 2 - 1], points[points.Count / 2]);
}

private void diagram_DrawLink(object sender, DrawLinkEventArgs e)
{
	if (!e.Shadow)
	{
		var point = MiddlePoint(e.Link);
		e.Graphics.FillEllipse(Brushes.Red, point.X - 2, point.Y - 2, 4, 4);
	}
} 

  
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint