WorkflowDesignerMessageFilter 类

定义

注意

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

为所有工作流消息筛选器提供基类。

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 中派生的自定义设计器消息筛选器。 名为 CustomMessageFilter 的类将重写它的许多基类方法,其中包括 OnMouseDownOnMouseMoveOnMouseUpOnMouseDoubleClickOnMouseEnterOnMouseHoverOnMouseLeaveOnDragEnterOnDragOverOnKeyDown

此代码示例摘自 DesignerShell.cs 文件中的基本设计器宿主 SDK 示例。 有关详细信息,请参阅 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

注解

注意

本材料讨论的类型和命名空间已废弃不用。 有关详细信息,请参阅 Windows Workflow Foundation 4.5 中弃用的类型

工作流设计器提供一个 Strategy 设计模式来创建可替换的消息筛选器对象以处理事件。

WorkflowDesignerMessageFilter 类中进行派生以创建可响应工作流设计器事件(如拖动操作、布局和绘画操作以及其他设计器事件)的消息筛选器。 若要向消息筛选器链添加自定义消息筛选器,请对 AddDesignerMessageFilter 调用 WorkflowView,或重写自定义根活动的 MessageFilters 虚拟属性并向从基类中返回的集合添加自定义消息筛选器。

构造函数

WorkflowDesignerMessageFilter()
已过时.

在派生类中实现时,初始化 WorkflowDesignerMessageFilter 的实例。

属性

MessageHitTestContext
已过时.

获取描述 HitTestInfo 的上下文的 WorkflowDesignerMessageFilter

ParentView
已过时.

获取与 WorkflowView 关联的 WorkflowDesignerMessageFilter

方法

Dispose()
已过时.

释放由 WorkflowDesignerMessageFilter 占用的资源。

Dispose(Boolean)
已过时.

释放由 WorkflowDesignerMessageFilter 占用的非托管资源,还可以另外再释放托管资源。

Equals(Object)
已过时.

确定指定对象是否等于当前对象。

(继承自 Object)
Finalize()
已过时.

在垃圾回收将对象回收之前,尝试通过调用 Dispose(false) 来释放资源。

GetHashCode()
已过时.

作为默认哈希函数。

(继承自 Object)
GetType()
已过时.

获取当前实例的 Type

(继承自 Object)
Initialize(WorkflowView)
已过时.

使用关联的 WorkflowDesignerMessageFilter 初始化 WorkflowView

MemberwiseClone()
已过时.

创建当前 Object 的浅表副本。

(继承自 Object)
OnDragDrop(DragEventArgs)
已过时.

拖动操作过程中在对象上松开鼠标按钮时发生。

OnDragEnter(DragEventArgs)
已过时.

在拖动操作过程中鼠标指针进入对象边界时发生。

OnDragLeave()
已过时.

在拖动操作过程中鼠标指针离开对象边界时发生。

OnDragOver(DragEventArgs)
已过时.

拖动操作过程中在对象边界内移动鼠标指针时发生。

OnGiveFeedback(GiveFeedbackEventArgs)
已过时.

在执行拖动操作期间发生。

OnKeyDown(KeyEventArgs)
已过时.

在按下某个键时发生。

OnKeyUp(KeyEventArgs)
已过时.

在松开某个键时发生。

OnLayout(LayoutEventArgs)
已过时.

在应重新定位子对象时发生。

OnMouseCaptureChanged()
已过时.

当通过拖动鼠标选择的项更改时发生。

OnMouseDoubleClick(MouseEventArgs)
已过时.

当双击鼠标时发生。

OnMouseDown(MouseEventArgs)
已过时.

在单击鼠标按钮时发生。

OnMouseEnter(MouseEventArgs)
已过时.

当鼠标指针进入对象的边界时发生。

OnMouseHover(MouseEventArgs)
已过时.

当鼠标指针暂停在对象上方时发生。

OnMouseLeave()
已过时.

当鼠标指针离开对象的边界时发生。

OnMouseMove(MouseEventArgs)
已过时.

当鼠标指针在对象边界内移动时发生。

OnMouseUp(MouseEventArgs)
已过时.

在松开鼠标按钮时发生。

OnMouseWheel(MouseEventArgs)
已过时.

当鼠标滚轮移动时发生。

OnPaint(PaintEventArgs, Rectangle, AmbientTheme)
已过时.

接收绘画消息时发生。

OnPaintWorkflowAdornments(PaintEventArgs, Rectangle, AmbientTheme)
已过时.

在工作流应重新绘画其修饰时发生。

OnQueryContinueDrag(QueryContinueDragEventArgs)
已过时.

在执行拖动操作期间发生。

OnScroll(ScrollBar, Int32)
已过时.

当用户在工作流设计器中滚动时发生。

OnShowContextMenu(Point)
已过时.

在工作流应显示上下文菜单时发生。

OnThemeChange()
已过时.

当工作流的主题更改时发生。

ProcessMessage(Message)
已过时.

当必须处理原始的 Win32 消息时发生。

ToString()
已过时.

返回表示当前对象的字符串。

(继承自 Object)

适用于

另请参阅