WorkflowDesignerMessageFilter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
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
的類別會覆寫一些基底類別方法,包括 OnMouseDown、OnMouseMove、OnMouseUp、OnMouseDoubleClick、OnMouseEnter、OnMouseHover、OnMouseLeave、OnDragEnter、OnDragOver 和 OnKeyDown。
這個程式碼範例是 DesignerShell.cs 檔案中<Basic Designer Hosting SDK>範例的一部分。 如需詳細資訊,請參閱 基本設計工具裝載。
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 |
已淘汰.
|