WorkflowDesignerMessageFilter Classe

Definizione

Attenzione

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

Fornisce una classe di base per tutti i filtri messaggi del flusso di lavoro.

public ref class WorkflowDesignerMessageFilter abstract : IDisposable
public abstract class WorkflowDesignerMessageFilter : IDisposable
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public abstract class WorkflowDesignerMessageFilter : IDisposable
type WorkflowDesignerMessageFilter = class
    interface IDisposable
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type WorkflowDesignerMessageFilter = class
    interface IDisposable
Public MustInherit Class WorkflowDesignerMessageFilter
Implements IDisposable
Ereditarietà
WorkflowDesignerMessageFilter
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato un filtro messaggi della finestra di progettazione derivato da WorkflowDesignerMessageFilter. La classe, denominata CustomMessageFilteresegue l'override di alcuni metodi della classe di base inclusi OnMouseDown, OnMouseMove, OnMouseUp, OnMouseDoubleClick, OnMouseEnter, OnMouseHover, OnMouseLeave, OnDragEnter, OnDragOvere OnKeyDown.

Questo esempio di codice è parte dell'esempio SDK Basic DesignerHosting nel file DesignerShell.cs. Per altre informazioni, vedere Hosting di base Designer.

internal sealed class CustomMessageFilter : WorkflowDesignerMessageFilter
{
    #region Members and Constructor

    private bool mouseDown;
    private IServiceProvider serviceProvider;
    private WorkflowView workflowView;
    private WorkflowDesignerLoader loader;

    public CustomMessageFilter(IServiceProvider provider, WorkflowView workflowView, WorkflowDesignerLoader loader)
    {
        this.serviceProvider = provider;
        this.workflowView = workflowView;
        this.loader = loader;
    }

    #endregion

    #region MessageFilter Overridables

    protected override bool OnMouseDown(MouseEventArgs eventArgs)
    {
        //Allow other components to process this event by not returning true.
        this.mouseDown = true;
        return false;
    }

    protected override bool OnMouseMove(MouseEventArgs eventArgs)
    {
        //Allow other components to process this event by not returning true.
        if (mouseDown)
        {
            workflowView.ScrollPosition = new Point(eventArgs.X, eventArgs.Y);
        }
        return false;
    }

    protected override bool OnMouseUp(MouseEventArgs eventArgs)
    {
        //Allow other components to process this event by not returning true.
        mouseDown = false;
        return false;
    }

    protected override bool OnMouseDoubleClick(MouseEventArgs eventArgs)
    {
        mouseDown = false;
        return true;
    }

    protected override bool OnMouseEnter(MouseEventArgs eventArgs)
    {
        //Allow other components to process this event by not returning true.
        mouseDown = false;
        return false;
    }

    protected override bool OnMouseHover(MouseEventArgs eventArgs)
    {
        //Allow other components to process this event by not returning true.
        mouseDown = false;
        return false;
    }

    protected override bool OnMouseLeave()
    {
        //Allow other components to process this event by not returning true.
        mouseDown = false;
        return false;
    }

    protected override bool OnMouseWheel(MouseEventArgs eventArgs)
    {
        mouseDown = false;
        return true;
    }

    protected override bool OnMouseCaptureChanged()
    {
        //Allow other components to process this event by not returning true.
        mouseDown = false;
        return false;
    }

    protected override bool OnDragEnter(DragEventArgs eventArgs)
    {
        return true;
    }

    protected override bool OnDragOver(DragEventArgs eventArgs)
    {
        return true;
    }

    protected override bool OnDragLeave()
    {
        return true;
    }

    protected override bool OnDragDrop(DragEventArgs eventArgs)
    {
        return true;
    }

    protected override bool OnGiveFeedback(GiveFeedbackEventArgs gfbevent)
    {
        return true;
    }

    protected override bool OnQueryContinueDrag(QueryContinueDragEventArgs qcdevent)
    {
        return true;
    }

    protected override bool OnKeyDown(KeyEventArgs eventArgs)
    {
        if (eventArgs.KeyCode == Keys.Delete)
        {
            ISelectionService selectionService = (ISelectionService)serviceProvider.GetService(typeof(ISelectionService));
            if (selectionService != null && selectionService.PrimarySelection is CodeActivity)
            {
                CodeActivity codeActivityComponent = (CodeActivity)selectionService.PrimarySelection;
                CompositeActivity parentActivity = codeActivityComponent.Parent;
                if (parentActivity != null)
                {
                    parentActivity.Activities.Remove(codeActivityComponent);
                    this.ParentView.Update();
                }
                loader.RemoveActivityFromDesigner(codeActivityComponent);
            }
        }
        return true;
    }

    protected override bool OnKeyUp(KeyEventArgs eventArgs)
    {
        return true;
    }

    protected override bool OnShowContextMenu(Point menuPoint)
    {
        return true;
    }

    #endregion
}
    Friend NotInheritable Class CustomMessageFilter
        Inherits WorkflowDesignerMessageFilter

#Region "Members and Constructor"

        Private mouseDown As Boolean
        Private serviceProvider As IServiceProvider
        Private workflowView As WorkflowView
        Private loader As WorkflowDesignerLoader

        Public Sub New(ByVal provider As IServiceProvider, ByVal workflowView As WorkflowView, ByVal loader As WorkflowDesignerLoader)
            Me.serviceProvider = provider
            Me.workflowView = workflowView
            Me.loader = loader
        End Sub

#End Region

#Region "WorkflowDesignerMessageFilter Overridables"

        Protected Overrides Function OnMouseDown(ByVal eventArgs As System.Windows.Forms.MouseEventArgs) As Boolean
            ' Allow other components to process this event by not returning true.
            mouseDown = True
            Return False
        End Function

        Protected Overrides Function OnMouseMove(ByVal eventArgs As System.Windows.Forms.MouseEventArgs) As Boolean
            ' Allow other components to process this event by not returning true.
            If mouseDown Then
                workflowView.ScrollPosition = New Point(eventArgs.X, eventArgs.Y)
            End If
            Return False
        End Function

        Protected Overrides Function OnMouseUp(ByVal eventArgs As MouseEventArgs) As Boolean
            ' Allow other components to process this event by not returning true.
            mouseDown = False
            Return False
        End Function

        Protected Overrides Function OnMouseDoubleClick(ByVal eventArgs As MouseEventArgs) As Boolean
            mouseDown = False
            Return True
        End Function

        Protected Overrides Function OnMouseEnter(ByVal eventArgs As MouseEventArgs) As Boolean
            ' Allow other components to process this event by not returning true.
            mouseDown = False
            Return False
        End Function

        Protected Overrides Function OnMouseHover(ByVal eventArgs As MouseEventArgs) As Boolean
            ' Allow other components to process this event by not returning true.
            mouseDown = False
            Return False
        End Function

        Protected Overrides Function OnMouseLeave() As Boolean
            ' Allow other components to process this event by not returning true.
            mouseDown = False
            Return False
        End Function

        Protected Overrides Function OnMouseWheel(ByVal eventArgs As MouseEventArgs) As Boolean
            mouseDown = False
            Return True
        End Function

        Protected Overrides Function OnMouseCaptureChanged() As Boolean
            ' Allow other components to process this event by not returning true.
            mouseDown = False
            Return False
        End Function

        Protected Overrides Function OnDragEnter(ByVal eventArgs As DragEventArgs) As Boolean
            Return True
        End Function

        Protected Overrides Function OnDragOver(ByVal eventArgs As DragEventArgs) As Boolean
            Return True
        End Function

        Protected Overrides Function OnDragLeave() As Boolean
            Return True
        End Function

        Protected Overrides Function OnDragDrop(ByVal eventArgs As DragEventArgs) As Boolean
            Return True
        End Function

        Protected Overrides Function OnGiveFeedback(ByVal gfbevent As GiveFeedbackEventArgs) As Boolean
            Return True
        End Function

        Protected Overrides Function OnQueryContinueDrag(ByVal qcdevent As QueryContinueDragEventArgs) As Boolean
            Return True
        End Function

        Protected Overrides Function OnKeyDown(ByVal eventArgs As KeyEventArgs) As Boolean
            If eventArgs.KeyCode = Keys.Delete Then
                Dim selectionService As ISelectionService = CType(serviceProvider.GetService(GetType(ISelectionService)), ISelectionService)
                If selectionService IsNot Nothing AndAlso TypeOf selectionService.PrimarySelection Is CodeActivity Then
                    Dim codeActivityComponent As CodeActivity = CType(selectionService.PrimarySelection, CodeActivity)
                    Dim parentActivity As CompositeActivity = codeActivityComponent.Parent
                    If parentActivity IsNot Nothing Then
                        parentActivity.Activities.Remove(codeActivityComponent)
                        Me.ParentView.Update()
                    End If
                    loader.RemoveActivityFromDesigner(codeActivityComponent)
                End If
            End If
            Return True
        End Function

        Protected Overrides Function OnKeyUp(ByVal eventArgs As KeyEventArgs) As Boolean
            Return True
        End Function

        Protected Overrides Function OnShowContextMenu(ByVal menuPoint As Point) As Boolean
            Return True
        End Function

#End Region

    End Class

Commenti

Nota

In questo materiale vengono descritti tipi e spazi dei nomi obsoleti. Per altre informazioni, vedere Deprecated Types in Windows Workflow Foundation 4.5 (Tipi deprecati in Windows Workflow Foundation 4.5).

La finestra di progettazione del flusso di lavoro fornisce un modello di progettazione Strategy per creare oggetti del filtro messaggi sostituibili per gestire eventi.

Derivare dalla classe WorkflowDesignerMessageFilter per creare filtri messaggi che possono rispondere a eventi della finestra di progettazione del flusso di lavoro, ad esempio operazioni di trascinamento, operazioni di layout e di disegno nonché altri eventi della finestra di progettazione. Per aggiungere un filtro messaggi personalizzato alla catena dei filtri messaggi, chiamare AddDesignerMessageFilter su WorkflowView o eseguire l'override della proprietà virtuale MessageFilters sull'attività radice personalizzata e aggiungere il filtro messaggi personalizzato alla raccolta restituita dalla classe di base.

Costruttori

WorkflowDesignerMessageFilter()
Obsoleti.

Una volta implementato in una classe derivata, inizializza un'istanza della classe WorkflowDesignerMessageFilter.

Proprietà

MessageHitTestContext
Obsoleti.

Ottiene l’oggetto HitTestInfo che descrive il contesto di WorkflowDesignerMessageFilter.

ParentView
Obsoleti.

Consente di ottenere l'oggetto WorkflowView associato a WorkflowDesignerMessageFilter.

Metodi

Dispose()
Obsoleti.

Rilascia le risorse usate da WorkflowDesignerMessageFilter.

Dispose(Boolean)
Obsoleti.

Rilascia le risorse non gestite usate da WorkflowDesignerMessageFilter e, facoltativamente, le risorse gestite.

Equals(Object)
Obsoleti.

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()
Obsoleti.

Esegue un tentativo di liberare risorse chiamando Dispose(false) prima che l'oggetto venga recuperato dalla procedura di Garbage Collection.

GetHashCode()
Obsoleti.

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()
Obsoleti.

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Initialize(WorkflowView)
Obsoleti.

Inizializza la WorkflowDesignerMessageFilter con la classe WorkflowView associata.

MemberwiseClone()
Obsoleti.

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnDragDrop(DragEventArgs)
Obsoleti.

Si verifica quando l'utente rilascia il pulsante del mouse su un oggetto durante un'operazione di trascinamento.

OnDragEnter(DragEventArgs)
Obsoleti.

Si verifica quando il puntatore del mouse accede ai limiti di un oggetto mentre è in corso l'operazione di trascinamento.

OnDragLeave()
Obsoleti.

Si verifica quando il puntatore del mouse esce dai limiti di un oggetto mentre è in corso l'operazione di trascinamento.

OnDragOver(DragEventArgs)
Obsoleti.

Si verifica quando il puntatore del mouse viene spostato all’interno dei limiti di un oggetto mentre è in corso l'operazione di trascinamento.

OnGiveFeedback(GiveFeedbackEventArgs)
Obsoleti.

Si verifica durante un'operazione di trascinamento.

OnKeyDown(KeyEventArgs)
Obsoleti.

Si verifica quando un tasto viene premuto.

OnKeyUp(KeyEventArgs)
Obsoleti.

Si verifica quando si rilascia un tasto.

OnLayout(LayoutEventArgs)
Obsoleti.

Si verifica quando è necessario riposizionare oggetti figlio.

OnMouseCaptureChanged()
Obsoleti.

Si verifica quando gli elementi selezionati trascinando il mouse subiscono modifiche.

OnMouseDoubleClick(MouseEventArgs)
Obsoleti.

Si verifica quando si fa doppio clic con il mouse.

OnMouseDown(MouseEventArgs)
Obsoleti.

Si verifica quando si fa clic sul pulsante del mouse.

OnMouseEnter(MouseEventArgs)
Obsoleti.

Si verifica quando il puntatore del mouse entra nell'area di un oggetto.

OnMouseHover(MouseEventArgs)
Obsoleti.

Si verifica quando il puntatore del mouse viene sospeso su un oggetto.

OnMouseLeave()
Obsoleti.

Si verifica quando il puntatore del mouse esce dall'area di un oggetto.

OnMouseMove(MouseEventArgs)
Obsoleti.

Si verifica quando il puntatore del mouse si sposta all’interno dei limiti dell'area dell'oggetto.

OnMouseUp(MouseEventArgs)
Obsoleti.

Si verifica quando viene rilasciato il pulsante del mouse.

OnMouseWheel(MouseEventArgs)
Obsoleti.

Si verifica quando viene spostata la rotellina del mouse.

OnPaint(PaintEventArgs, Rectangle, AmbientTheme)
Obsoleti.

Si verifica quando viene ricevuto un messaggio di disegno.

OnPaintWorkflowAdornments(PaintEventArgs, Rectangle, AmbientTheme)
Obsoleti.

Si verifica quando il flusso di lavoro deve ridisegnare le aree di controllo.

OnQueryContinueDrag(QueryContinueDragEventArgs)
Obsoleti.

Si verifica durante un'operazione di trascinamento.

OnScroll(ScrollBar, Int32)
Obsoleti.

Si verifica quando un utente visualizza la finestra di progettazione del flusso di lavoro.

OnShowContextMenu(Point)
Obsoleti.

Si verifica quando il flusso di lavoro deve visualizzare un menu di scelta rapida.

OnThemeChange()
Obsoleti.

Si verifica quando il tema del flusso di lavoro cambia.

ProcessMessage(Message)
Obsoleti.

Si verifica quando un messaggio Win32 non elaborato deve essere elaborato.

ToString()
Obsoleti.

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche