Freigeben über


FreeformActivityDesigner.AddConnector Methode

Definition

Fügt eine Verbindung zu FreeformActivityDesigner hinzu.

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

Parameter

source
ConnectionPoint

Der ConnectionPoint-Ort, um mit dem Zeichnen der Verbindung zu beginnen.

target
ConnectionPoint

Der ConnectionPoint-Ort, um das Zeichnen der Verbindung abzuschließen.

Gibt zurück

Connector

Die Connector, die zu FreeformActivityDesigner hinzugefügt wurde.

Ausnahmen

source oder target beinhaltet einen null-Verweis (Nothing in Visual Basic).

Die AssociatedDesigner-Eigenschaft für source oder target enthält einen null-Verweis (Nothing).

Der aktuelle FreeformActivityDesigner ist nicht der Container für die hinzuzufügende Verbindung.

Beispiele

Im folgenden Beispiel wird gezeigt, wie die AddConnector-Methode in der OnLayoutPosition-Methode eines benutzerdefinierten Aktivitätsdesigners verwendet wird.

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

Hinweise

AddConnector wird aufgerufen, wenn ein Benutzer eine Connector zu FreeformActivityDesigner hinzufügt.

Gilt für