/// <summary> /// Method to change the PortVisibility /// </summary> /// <param name="node"></param> /// <param name="portVisibility"></param> private void PortVisibilityChange(NodeViewModel node, PortVisibility portVisibility) { foreach (IPort nodeport in (node.Ports as ObservableCollection <IPort>)) { if (portVisibility == PortVisibility.ValidConnection) { if ((nodeport as CustomPort).Porttype == "In") { (nodeport as CustomPort).Constraints = (nodeport as CustomPort).Constraints & ~PortConstraints.InheritConnectable; (nodeport as CustomPort).Constraints = (nodeport as CustomPort).Constraints | PortConstraints.InConnect; } else if ((nodeport as CustomPort).Porttype == "Out") { (nodeport as CustomPort).Constraints = (nodeport as CustomPort).Constraints & ~PortConstraints.InheritConnectable; (nodeport as CustomPort).Constraints = (nodeport as CustomPort).Constraints | PortConstraints.OutConnect; } nodeport.PortVisibility = portVisibility; } else if (portVisibility == PortVisibility.MouseOverOnConnect || portVisibility == PortVisibility.Default) { (nodeport as CustomPort).Constraints = PortConstraints.Default & ~PortConstraints.InheritPortVisibility; nodeport.PortVisibility = portVisibility; } else { nodeport.PortVisibility = portVisibility; } } }
public Port AddPort(string name, float offsetX, float offsetY, PortShapes shape = PortShapes.Square, PortVisibility visiblity = PortVisibility.Hidden) { Port port = new Port(); port.Name = name; port.Offset = new DiagramPoint(offsetX, offsetY); port.Visibility = visiblity; port.FillColor = "red"; port.BorderColor = "black"; port.Shape = shape; if (shape == PortShapes.Path) { port.FillColor = port.BorderColor = "black"; port.PathData = "M6.805,0L13.61,10.703L0,10.703z"; } port.ConnectorPadding = 4; return(port); }