FreeformActivityDesigner.AddConnector Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Adds a connector to the FreeformActivityDesigner.
public:
System::Workflow::ComponentModel::Design::Connector ^ AddConnector(System::Workflow::ComponentModel::Design::ConnectionPoint ^ source, System::Workflow::ComponentModel::Design::ConnectionPoint ^ target);
public System.Workflow.ComponentModel.Design.Connector AddConnector (System.Workflow.ComponentModel.Design.ConnectionPoint source, System.Workflow.ComponentModel.Design.ConnectionPoint target);
member this.AddConnector : System.Workflow.ComponentModel.Design.ConnectionPoint * System.Workflow.ComponentModel.Design.ConnectionPoint -> System.Workflow.ComponentModel.Design.Connector
Public Function AddConnector (source As ConnectionPoint, target As ConnectionPoint) As Connector
Parameters
- source
- ConnectionPoint
The ConnectionPoint location to begin drawing the connector.
- target
- ConnectionPoint
The ConnectionPoint location to finish drawing the connector.
Returns
The Connector that was added to the FreeformActivityDesigner.
Exceptions
source
or target
contains a null
reference (Nothing
in Visual Basic).
The AssociatedDesigner property for source
or target
contains a null
reference (Nothing
).
The current FreeformActivityDesigner is not the container for the connector to add.
Examples
The following example shows how to use the AddConnector
method in a custom activity designer's OnLayoutPosition
method.
class ProcessActvityDesigner : FreeformActivityDesigner
{
private ConnectionPoint GetConnectionPoint(Activity activity, Int32 connectorIndex, DesignerEdges edge)
{
ActivityDesigner designer = null;
if (activity != null && activity.Site != null)
{
IDesignerHost designerHost = activity.Site.GetService(typeof(IDesignerHost)) as IDesignerHost;
if (designerHost != null)
designer = designerHost.GetDesigner(activity) as ActivityDesigner;
}
return new ConnectionPoint(designer, edge, connectorIndex);
}
protected override void OnLayoutPosition(ActivityDesignerLayoutEventArgs e)
{
base.OnLayoutPosition(e);
// Draw a connector between the first and second activities contained in
// the sequence activity used by this designer
if (this.IsRootDesigner)
{
CompositeActivity parentActivity = (CompositeActivity)this.Activity;
ConnectionPoint sourcePoint = GetConnectionPoint(parentActivity.Activities[0], 1, DesignerEdges.Bottom);
ConnectionPoint targetPoint = GetConnectionPoint(parentActivity.Activities[1], 0, DesignerEdges.Top);
this.AddConnector(sourcePoint, targetPoint);
}
}
Class ProcessActvityDesigner
Inherits System.Workflow.ComponentModel.Design.FreeformActivityDesigner
Function GetConnectionPoint(ByVal activity As Activity, ByVal connectorIndex As Int32, ByVal edge As DesignerEdges) As ConnectionPoint
Dim designer As ActivityDesigner = Nothing
If Activity IsNot Nothing And Activity.Site IsNot Nothing Then
Dim designerHost As IDesignerHost = activity.Site.GetService(GetType(IDesignerHost))
If designerHost IsNot Nothing Then
designer = CType(designerHost.GetDesigner(activity), ActivityDesigner)
End If
End If
Return New ConnectionPoint(designer, edge, connectorIndex)
End Function
Protected Overrides Sub OnLayoutPosition(ByVal e As ActivityDesignerLayoutEventArgs)
MyBase.OnLayoutPosition(e)
' Draw a connector between the first and second activities contained in
' the sequence activity used by me designer
If Me.IsRootDesigner Then
Dim parentActivity As CompositeActivity = CType(Me.Activity, CompositeActivity)
Dim sourcePoint As ConnectionPoint = GetConnectionPoint(parentActivity.Activities(0), 1, DesignerEdges.Bottom)
Dim targetPoint As ConnectionPoint = GetConnectionPoint(parentActivity.Activities(1), 0, DesignerEdges.Top)
Me.AddConnector(sourcePoint, targetPoint)
End If
End Sub
End Class
Remarks
AddConnector is called when a user adds a Connector to the FreeformActivityDesigner.