WorkflowMenuCommands Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Precaución
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
Define un conjunto de campos CommandID, cada uno de los cuales corresponde a una función de comando proporcionada por los diseñadores de flujo de trabajo. Esta clase no puede heredarse.
public ref class WorkflowMenuCommands sealed : System::ComponentModel::Design::StandardCommands
public sealed class WorkflowMenuCommands : System.ComponentModel.Design.StandardCommands
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public sealed class WorkflowMenuCommands : System.ComponentModel.Design.StandardCommands
type WorkflowMenuCommands = class
inherit StandardCommands
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type WorkflowMenuCommands = class
inherit StandardCommands
Public NotInheritable Class WorkflowMenuCommands
Inherits StandardCommands
- Herencia
- Atributos
Ejemplos
En el siguiente ejemplo se muestra cómo crear un MenuCommandService personalizado. En este ejemplo, se crea un menú contextual cuando se llama a ShowContextMenu
. En el método GetSelectionMenuItems
, la clase WorkflowMenuCommands se utiliza para asociar los comandos de menú apropiados proporcionados por el diseñador de flujo de trabajo con su texto correspondiente. Una vez finalizado, se asocia un controlador de eventos a cada comando de modo que cuando se seleccione, se invoque el MenuCommand
adecuado.
internal sealed class WorkflowMenuCommandService : MenuCommandService
{
public WorkflowMenuCommandService(IServiceProvider serviceProvider)
: base(serviceProvider)
{
}
public override void ShowContextMenu(CommandID menuID, int x, int y)
{
if (menuID == WorkflowMenuCommands.SelectionMenu)
{
ContextMenu contextMenu = new ContextMenu();
foreach (DesignerVerb verb in Verbs)
{
MenuItem menuItem = new MenuItem(verb.Text, new EventHandler(OnMenuClicked));
menuItem.Tag = verb;
contextMenu.MenuItems.Add(menuItem);
}
MenuItem[] items = GetSelectionMenuItems();
if (items.Length > 0)
{
contextMenu.MenuItems.Add(new MenuItem("-"));
foreach (MenuItem item in items)
contextMenu.MenuItems.Add(item);
}
WorkflowView workflowView = GetService(typeof(WorkflowView)) as WorkflowView;
if (workflowView != null)
contextMenu.Show(workflowView, workflowView.PointToClient(new Point(x, y)));
}
}
private MenuItem[] GetSelectionMenuItems()
{
List<MenuItem> menuItems = new List<MenuItem>();
bool addMenuItems = true;
ISelectionService selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
if (selectionService != null)
{
foreach (object obj in selectionService.GetSelectedComponents())
{
if (!(obj is Activity))
{
addMenuItems = false;
break;
}
}
}
if (addMenuItems)
{
Dictionary<CommandID, string> selectionCommands = new Dictionary<CommandID, string>();
selectionCommands.Add(WorkflowMenuCommands.Cut, "Cut");
selectionCommands.Add(WorkflowMenuCommands.Copy, "Copy");
selectionCommands.Add(WorkflowMenuCommands.Paste, "Paste");
selectionCommands.Add(WorkflowMenuCommands.Delete, "Delete");
selectionCommands.Add(WorkflowMenuCommands.Collapse, "Collapse");
selectionCommands.Add(WorkflowMenuCommands.Expand, "Expand");
selectionCommands.Add(WorkflowMenuCommands.Disable, "Disable");
selectionCommands.Add(WorkflowMenuCommands.Enable, "Enable");
foreach (CommandID id in selectionCommands.Keys)
{
MenuCommand command = FindCommand(id);
if (command != null)
{
MenuItem menuItem = new MenuItem(selectionCommands[id], new EventHandler(OnMenuClicked));
menuItem.Tag = command;
menuItems.Add(menuItem);
}
}
}
return menuItems.ToArray();
}
private void OnMenuClicked(object sender, EventArgs e)
{
MenuItem menuItem = sender as MenuItem;
if (menuItem != null && menuItem.Tag is MenuCommand)
{
MenuCommand command = menuItem.Tag as MenuCommand;
command.Invoke();
}
}
}
Friend NotInheritable Class WorkflowMenuCommandService
Inherits MenuCommandService
Public Sub New(ByVal serviceProvider As IServiceProvider)
MyBase.new(serviceProvider)
End Sub
Public Overrides Sub ShowContextMenu(ByVal menuID As CommandID, ByVal x As Integer, ByVal y As Integer)
If menuID.ID = WorkflowMenuCommands.SelectionMenu.ID Then
Dim contextMenu As New ContextMenu()
For Each verb As DesignerVerb In Verbs
Dim MenuItem As New MenuItem(verb.Text, AddressOf OnMenuClicked)
MenuItem.Tag = verb
contextMenu.MenuItems.Add(MenuItem)
Next
Dim items As MenuItem() = GetSelectionMenuItems()
If (items.Length > 0) Then
contextMenu.MenuItems.Add(New MenuItem("-"))
For Each item As MenuItem In items
contextMenu.MenuItems.Add(item)
Next
Dim workflowView As WorkflowView = CType(GetService(GetType(WorkflowView)), WorkflowView)
If workflowView Is Nothing Then
contextMenu.Show(workflowView, workflowView.PointToClient(New Point(x, y)))
End If
End If
End If
End Sub
Private Function GetSelectionMenuItems() As MenuItem()
Dim menuItems As New List(Of MenuItem)()
Dim addMenuItems As Boolean = True
Dim selectionService As ISelectionService = CType(GetService(GetType(ISelectionService)), ISelectionService)
If selectionService IsNot Nothing Then
For Each obj As Object In selectionService.GetSelectedComponents()
If Not TypeOf obj Is Activity Then
addMenuItems = False
Exit For
End If
Next
End If
If (addMenuItems) Then
Dim selectionCommands As New Dictionary(Of CommandID, String)()
selectionCommands.Add(WorkflowMenuCommands.Cut, "Cut")
selectionCommands.Add(WorkflowMenuCommands.Copy, "Copy")
selectionCommands.Add(WorkflowMenuCommands.Paste, "Paste")
selectionCommands.Add(WorkflowMenuCommands.Delete, "Delete")
selectionCommands.Add(WorkflowMenuCommands.Collapse, "Collapse")
selectionCommands.Add(WorkflowMenuCommands.Expand, "Expand")
selectionCommands.Add(WorkflowMenuCommands.Disable, "Disable")
selectionCommands.Add(WorkflowMenuCommands.Enable, "Enable")
For Each id As CommandID In selectionCommands.Keys
Dim command As MenuCommand = FindCommand(id)
If command IsNot Nothing Then
Dim menuItem As New MenuItem(selectionCommands(id), AddressOf OnMenuClicked)
menuItem.Tag = command
menuItems.Add(menuItem)
End If
Next
End If
Return menuItems.ToArray()
End Function
Private Sub OnMenuClicked(ByVal sender As Object, ByVal e As EventArgs)
Dim menuItem As MenuItem = CType(sender, MenuItem)
If menuItem IsNot Nothing And TypeOf menuItem.Tag Is MenuCommand Then
Dim command As MenuCommand = CType(menuItem.Tag, MenuCommand)
command.Invoke()
End If
End Sub
End Class
Para habilitar este servicio, llame al método AddService
de la propiedad LoaderHost en una clase WorkflowDesignerLoader como se muestra en el ejemplo siguiente.
protected override void Initialize()
{
base.Initialize();
IDesignerLoaderHost host = this.LoaderHost;
if (host != null)
{
host.RemoveService(typeof(IIdentifierCreationService));
host.AddService(typeof(IIdentifierCreationService), new IdentifierCreationService(host));
host.AddService(typeof(IMenuCommandService), new WorkflowMenuCommandService(host));
host.AddService(typeof(IToolboxService), new Toolbox(host));
TypeProvider typeProvider = new TypeProvider(host);
typeProvider.AddAssemblyReference(typeof(string).Assembly.Location);
host.AddService(typeof(ITypeProvider), typeProvider, true);
host.AddService(typeof(IEventBindingService), new EventBindingService());
}
}
Protected Overrides Sub Initialize()
MyBase.Initialize()
Dim host As IDesignerLoaderHost = Me.LoaderHost
If host IsNot Nothing Then
host.RemoveService(GetType(IIdentifierCreationService))
host.AddService(GetType(IIdentifierCreationService), New IdentifierCreationService(host))
host.AddService(GetType(IMenuCommandService), New WorkflowMenuCommandService(host))
host.AddService(GetType(IToolboxService), New Toolbox(host))
Dim typeProvider As New TypeProvider(host)
typeProvider.AddAssemblyReference(GetType(String).Assembly.Location)
host.AddService(GetType(ITypeProvider), typeProvider, True)
host.AddService(GetType(IEventBindingService), New EventBindingService())
End If
End Sub
Comentarios
Nota
En esta documentación se describen los tipos y espacios de nombres que están obsoletos. Para obtener más información, vea Tipos en desuso en Windows Workflow Foundation 4.5.
WorkflowMenuCommands contiene un conjunto de campos CommandID que se pueden usar para especificar un comando para vincular cuando se agrega un comando mediante el método AddCommand de IMenuCommandService.
Constructores
WorkflowMenuCommands() |
Inicializa una nueva instancia de la clase WorkflowMenuCommands. |
Campos
BreakpointActionMenu |
Obtiene CommandID para el menú de acción de punto de interrupción. Este campo es de solo lectura. |
BreakpointConditionMenu |
Obtiene CommandID para el menú de condición de punto de interrupción. Este campo es de solo lectura. |
BreakpointConstraintsMenu |
Obtiene CommandID para el menú de restricciones de punto de interrupción. Este campo es de solo lectura. |
BreakpointHitCountMenu |
Obtiene CommandID para el menú de número de llamadas de punto de interrupción. Este campo es de solo lectura. |
BreakpointLocationMenu |
Obtiene CommandID para el menú de ubicación de punto de interrupción. Este campo es de solo lectura. |
ChangeTheme |
Obtiene CommandID para el menú de cambio de tema. Este campo es de solo lectura. |
ClearBreakpointsMenu |
CommandID que se puede utilizar para acceder al menú de desactivación de puntos de interrupción. Este campo es de solo lectura. |
Collapse |
CommandID que se puede utilizar para tener acceso al menú de contracción. Este campo es de solo lectura. |
CopyToClipboard |
CommandID que se puede utilizar para tener acceso al menú de copiar. Este campo es de solo lectura. |
CreateTheme |
CommandID que se puede utilizar para tener acceso al menú de creación de tema. Este campo es de solo lectura. |
DebugCommandSetId |
Proporciona un identificador único para el conjunto de comandos de depuración. Este campo es de solo lectura. |
DebugStepBranchMenu |
CommandID que se puede utilizar para acceder al menú de bifurcación de paso de depuración. Este campo es de solo lectura. |
DebugStepInstanceMenu |
CommandID que se puede utilizar para acceder al menú de instancia de paso de depuración. Este campo es de solo lectura. |
DebugWorkflowGroupId |
Proporciona un identificador único para el grupo de flujo de trabajo de depuración de los menús. Este campo es de solo lectura. |
DefaultFilter |
CommandID que se puede utilizar para tener acceso al menú de filtro predeterminado. Este campo es de solo lectura. |
DefaultPage |
CommandID que se puede utilizar para tener acceso al menú de página predeterminada. Este campo es de solo lectura. |
DesignerActionsMenu |
CommandID que se puede utilizar para acceder al menú de acciones del diseñador. Este campo es de solo lectura. |
DesignerProperties |
CommandID que se puede utilizar para tener acceso al menú de propiedades del diseñador. Este campo es de solo lectura. |
Disable |
CommandID que se puede utilizar para tener acceso al menú de deshabilitar. Este campo es de solo lectura. |
Enable |
CommandID que se puede utilizar para tener acceso al menú de habilitar. Este campo es de solo lectura. |
EnableBreakpointMenu |
CommandID que se puede utilizar para acceder al menú de habilitación del punto de interrupción. Este campo es de solo lectura. |
ExecutionStateMenu |
CommandID que se puede utilizar para acceder al menú de estado de ejecución. Este campo es de solo lectura. |
Expand |
CommandID que se puede utilizar para tener acceso al menú de expansión. Este campo es de solo lectura. |
FirstZoomCommand |
CommandID que se puede utilizar para tener acceso al menú de primer zoom. Este campo es de solo lectura. |
GotoDisassemblyMenu |
CommandID que se puede utilizar para acceder al menú de ir a desensamblado. Este campo es de solo lectura. |
InsertBreakpointMenu |
CommandID que se puede utilizar para acceder al menú de inserción del punto de interrupción. Este campo es de solo lectura. |
InsertTracePointMenu |
CommandID que se puede utilizar para acceder al menú de inserción del punto de seguimiento. Este campo es de solo lectura. |
LastZoomCommand |
CommandID que se puede utilizar para tener acceso al menú de último zoom. Este campo es de solo lectura. |
MenuGuid |
Proporciona un identificador único el menú. Este campo es de solo lectura. |
NewDataBreakpointMenu |
CommandID que se puede utilizar para acceder al menú de punto de interrupción con nuevos datos. Este campo es de solo lectura. |
NewFileTracePointMenu |
CommandID que se puede utilizar para acceder al menú de nuevo archivo de punto de seguimiento. Este campo es de solo lectura. |
PageDown |
CommandID que se puede utilizar para tener acceso al menú AvPág. Este campo es de solo lectura. |
PageLayoutMenu |
CommandID que se puede utilizar para tener acceso al menú de diseño de página. Este campo es de solo lectura. |
PageSetup |
CommandID que se puede utilizar para tener acceso al menú de configuración de página. Este campo es de solo lectura. |
PageUp |
CommandID que se puede utilizar para tener acceso al menú RePág. Este campo es de solo lectura. |
Pan |
CommandID que se puede utilizar para tener acceso al menú panorámico. Este campo es de solo lectura. |
PanMenu |
CommandID que se puede utilizar para tener acceso al menú panorámico. Este campo es de solo lectura. |
CommandID que se puede utilizar para tener acceso al menú de impresión. Este campo es de solo lectura. |
|
PrintPreview |
CommandID que se puede utilizar para tener acceso al menú de vista previa de impresión. Este campo es de solo lectura. |
PrintPreviewPage |
CommandID que se puede utilizar para tener acceso al menú de página de vista previa de impresión. Este campo es de solo lectura. |
RunToCursorMenu |
CommandID que se puede utilizar para tener acceso al menú de ir a cursor. Este campo es de solo lectura. |
SaveAsImage |
CommandID que se puede utilizar para acceder al menú de guardar como una imagen. Este campo es de solo lectura. |
SelectionMenu |
CommandID que se puede utilizar para tener acceso al menú de selección. Este campo es de solo lectura. |
SetNextStatementMenu |
CommandID que puede utilizarse para tener acceso al menú de establecer instrucción siguiente. Este campo es de solo lectura. |
ShowAll |
CommandID que se puede utilizar para tener acceso al menú de mostrar todo. Este campo es de solo lectura. |
ShowNextStatementMenu |
CommandID que puede utilizarse para tener acceso al menú de mostrar instrucción siguiente. Este campo es de solo lectura. |
ToggleBreakpointMenu |
CommandID que se puede utilizar para acceder al menú de basculación del punto de interrupción. Este campo es de solo lectura. |
VerbGroupActions |
CommandID que se puede utilizar para acceder al menú de acciones de grupo de verbos. Este campo es de solo lectura. |
VerbGroupDesignerActions |
CommandID que se puede utilizar para acceder al menú de acciones de diseñador de grupo de verbos. Este campo es de solo lectura. |
VerbGroupEdit |
CommandID que se puede utilizar para acceder al menú de edición de grupo de verbos. Este campo es de solo lectura. |
VerbGroupGeneral |
CommandID que se puede utilizar para acceder al menú de grupo general de verbos. Este campo es de solo lectura. |
VerbGroupMisc |
CommandID que se puede utilizar para acceder al menú de otro grupo de verbos. Este campo es de solo lectura. |
VerbGroupOptions |
CommandID que se puede utilizar para acceder al menú de grupo de verbos de opciones. Este campo es de solo lectura. |
VerbGroupView |
CommandID que se puede utilizar para acceder al menú de visualización de grupo de verbos. Este campo es de solo lectura. |
WorkflowCommandSetId |
Proporciona un identificador único para el conjunto de comandos del flujo de trabajo. Este campo es de solo lectura. |
WorkflowToolBar |
CommandID que se puede utilizar para acceder al menú de barras de herramientas del flujo de trabajo. Este campo es de solo lectura. |
Zoom100Mode |
CommandID que se puede utilizar para tener acceso al menú de zoom 100%. Este campo es de solo lectura. |
Zoom150Mode |
CommandID que se puede usar para tener acceso al menú de zoom 150%. Este campo es de solo lectura. |
Zoom200Mode |
CommandID que se puede usar para tener acceso al menú de zoom 200%. Este campo es de solo lectura. |
Zoom300Mode |
CommandID que se puede usar para tener acceso al menú de zoom 300%. Este campo es de solo lectura. |
Zoom400Mode |
CommandID que se puede usar para tener acceso al menú de zoom 400%. Este campo es de solo lectura. |
Zoom50Mode |
CommandID que se puede usar para tener acceso al menú de zoom 50%. Este campo es de solo lectura. |
Zoom75Mode |
CommandID que se puede utilizar para tener acceso al menú de zoom 75%. Este campo es de solo lectura. |
ZoomIn |
CommandID que se puede utilizar para tener acceso al menú de zoom hacia delante. Este campo es de solo lectura. |
ZoomLevelCombo |
CommandID que se puede utilizar para tener acceso al menú combinado de nivel de zoom. Este campo es de solo lectura. |
ZoomLevelListHandler |
CommandID que se puede utilizar para tener acceso al menú del controlador de lista del nivel de zoom. Este campo es de solo lectura. |
ZoomMenu |
CommandID que se puede utilizar para tener acceso al menú de zoom. Este campo es de solo lectura. |
ZoomOut |
CommandID que se puede utilizar para tener acceso al menú de zoom hacia atrás. Este campo es de solo lectura. |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |