WorkflowDesignerMessageFilter Класс

Определение

Внимание!

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

Предоставляет базовый класс для всех фильтров сообщений рабочего процесса.Provides a base class for all workflow message filters.

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
Наследование
WorkflowDesignerMessageFilter
Атрибуты
Реализации

Примеры

В следующем примере кода показан пользовательский фильтр сообщений конструктора, который наследуется из объекта WorkflowDesignerMessageFilter.The following code example shows a custom designer message filter that derives from WorkflowDesignerMessageFilter. В классе с именем CustomMessageFilter переопределяется некоторое количество методов базового класса, включая: OnMouseDown, OnMouseMove, OnMouseUp, OnMouseDoubleClick, OnMouseEnter, OnMouseHover, OnMouseLeave, OnDragEnter, OnDragOver, OnKeyDown.The class, named CustomMessageFilter, overrides a number of its base class methods including OnMouseDown, OnMouseMove, OnMouseUp, OnMouseDoubleClick, OnMouseEnter, OnMouseHover, OnMouseLeave, OnDragEnter, OnDragOver, and OnKeyDown.

Данный пример кода является частью примера SDK«Basic Designer Hosting» из файла DesignerShell.cs.This code example is part of the Basic Designer Hosting SDK Sample from the DesignerShell.cs file. Дополнительные сведения см. в разделе базовое размещение конструктора.For more information, see Basic Designer Hosting.

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

Комментарии

Примечание

В этом материале обсуждаются устаревшие типы и пространства имен.This material discusses types and namespaces that are obsolete. Дополнительные сведения см. в статье о нерекомендуемых типах в Windows Workflow Foundation 4.5.For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

Конструктор рабочих процессов предоставляет шаблон проектирования Strategy для создания заменяемых объектов фильтров сообщений для обработки событий.The workflow designer provides a Strategy design pattern to create replaceable message filter objects to handle events.

Наследуется от класса WorkflowDesignerMessageFilter для создания фильтров сообщений, которые могут реагировать на события конструктора рабочих процессов, например, операции перетаскивания, компоновки, рисования и другие события конструктора.Derive from the WorkflowDesignerMessageFilter class to create message filters that can respond to workflow designer events, such as drag operations, layout and paint operations, and other designer events. Чтобы добавить пользовательский фильтра сообщений к цепочке фильтров сообщений, вызовите метод AddDesignerMessageFilter в объекте WorkflowView или переопределите виртуальное свойство MessageFiltersв пользовательской корневой операции и добавьте пользовательский фильтр сообщений к коллекции, которая возвращается из базового класса.To add a custom message filter to the message filters chain, call the AddDesignerMessageFilter on the WorkflowView or override the MessageFilters virtual property on the custom root activity and add the custom message filter to the collection returned from the base class.

Конструкторы

WorkflowDesignerMessageFilter()

При реализации в производном классе инициализирует экземпляр WorkflowDesignerMessageFilter.When implemented in a derived class, initializes an instance of a WorkflowDesignerMessageFilter.

Свойства

MessageHitTestContext

Возвращает объект HitTestInfo, который описывает контекст объекта WorkflowDesignerMessageFilter.Gets the HitTestInfo that describes the context of the WorkflowDesignerMessageFilter.

ParentView

Возвращает объект WorkflowView, связанный с WorkflowDesignerMessageFilter.Gets the WorkflowView that is associated with the WorkflowDesignerMessageFilter.

Методы

Dispose()

Освобождает ресурсы, используемые объектом WorkflowDesignerMessageFilter.Releases the resources used by the WorkflowDesignerMessageFilter.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом WorkflowDesignerMessageFilter, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the WorkflowDesignerMessageFilter and optionally releases the managed resources.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
Finalize()

Пытается освободить ресурсы путем вызова метода Dispose(false) перед уничтожением объекта во время сборки мусора.Attempts to free resources by calling Dispose(false) before the object is reclaimed by garbage collection.

GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
Initialize(WorkflowView)

Инициализирует объект WorkflowDesignerMessageFilter со связанным объектом WorkflowView.Initializes the WorkflowDesignerMessageFilter with the associated WorkflowView.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnDragDrop(DragEventArgs)

Вызывается при отпускании кнопки мыши над объектом во время операции перетаскивания.Occurs when the mouse button is released above an object during a drag operation.

OnDragEnter(DragEventArgs)

Вызывается, когда указатель мыши пересекает границы объекта во время операции перетаскивания.Occurs when the mouse pointer enters the bounds of an object during a drag operation.

OnDragLeave()

Вызывается, когда указатель мыши выходит за границы объекта во время операции перетаскивания.Occurs when the mouse pointer leaves the bounds of an object during a drag operation.

OnDragOver(DragEventArgs)

Вызывается, когда указатель мыши перемещается в границах объекта во время операции перетаскивания.Occurs when the mouse pointer moves within the bounds of an object during a drag operation.

OnGiveFeedback(GiveFeedbackEventArgs)

Вызывается при выполнении операции перетаскивания.Occurs during a drag operation.

OnKeyDown(KeyEventArgs)

Вызывается при нажатии клавиши.Occurs when a key is pressed.

OnKeyUp(KeyEventArgs)

Вызывается при отпускании клавиши.Occurs when a key is released.

OnLayout(LayoutEventArgs)

Вызывается, когда необходимо изменить расположение дочерних объектов.Occurs when child objects should be repositioned.

OnMouseCaptureChanged()

Вызывается, когда изменяются элементы, выбранные с помощью перетаскивания мыши.Occurs when the items selected by dragging the mouse changes.

OnMouseDoubleClick(MouseEventArgs)

Вызывается при двойном щелчке мыши.Occurs when you double-click the mouse.

OnMouseDown(MouseEventArgs)

Вызывается при нажатии кнопки мыши.Occurs when a mouse button is clicked.

OnMouseEnter(MouseEventArgs)

Вызывается, когда указатель мыши входит в границы объекта.Occurs when the mouse pointer enters the bounds of an object.

OnMouseHover(MouseEventArgs)

Вызывается, когда указатель мыши останавливается над объектом.Occurs when the mouse pointer pauses above an object.

OnMouseLeave()

Вызывается, когда указатель мыши выходит за границы объекта.Occurs when the mouse pointer leaves the bounds of an object.

OnMouseMove(MouseEventArgs)

Вызывается, когда указатель мыши перемещается в границах объекта.Occurs when the mouse pointer moves while within the bounds of an object.

OnMouseUp(MouseEventArgs)

Вызывается при отпускании кнопки мыши.Occurs when the mouse button is released.

OnMouseWheel(MouseEventArgs)

Вызывается при движении колесика мыши.Occurs when the mouse wheel moves.

OnPaint(PaintEventArgs, Rectangle, AmbientTheme)

Вызывается при получении сообщения рисования.Occurs when a paint message is received.

OnPaintWorkflowAdornments(PaintEventArgs, Rectangle, AmbientTheme)

Вызывается, когда рабочий процесс должен перерисовать свои элементы оформления.Occurs when the workflow should repaint its adornments.

OnQueryContinueDrag(QueryContinueDragEventArgs)

Вызывается при выполнении операции перетаскивания.Occurs during a drag operation.

OnScroll(ScrollBar, Int32)

Вызывается, когда пользователь выполняет прокрутку в конструкторе рабочего процесса.Occurs when a user scrolls in a workflow designer.

OnShowContextMenu(Point)

Вызывается, когда рабочий процесс должен показать контекстное меню.Occurs when the workflow should show a context menu.

OnThemeChange()

Вызывается при изменении темы рабочего процесса.Occurs when the theme of the workflow changes.

ProcessMessage(Message)

Вызывается, когда необходимо обработать необработанное сообщения Win32.Occurs when a raw Win32 message must be processed.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к