WorkflowMenuCommands Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание!
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
Определяет набор полей класса CommandID, каждое из которых соответствует командной функции, предоставленной конструкторами рабочих процессов. Этот класс не наследуется.
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
- Наследование
- Атрибуты
Примеры
В следующем примере показано создание пользовательского объекта класса MenuCommandService. В этом примере контекстное меню создается при вызове метода ShowContextMenu
. В методе GetSelectionMenuItems
класс WorkflowMenuCommands используется для сопоставления команд меню, предоставленных конструктором рабочего процесса, и соответствующего им текста. После завершения этой операции с каждой командой связан обработчик событий, чтобы при выборе команды вызывалась соответствующая команда MenuCommand
.
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
Чтобы включить эту службу, вызовите метод AddService
свойства LoaderHost класса WorkflowDesignerLoader, как показано в следующем примере.
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
Комментарии
Примечание
В этом материале обсуждаются устаревшие типы и пространства имен. Дополнительные сведения см. в статье о нерекомендуемых типах в Windows Workflow Foundation 4.5.
Класс WorkflowMenuCommands содержит множество полей класса CommandID, которые могут использоваться для задания команды, связываемой при добавлении команды с помощью метода AddCommand интерфейса IMenuCommandService.
Конструкторы
WorkflowMenuCommands() |
Устаревшие..
Инициализирует новый экземпляр класса WorkflowMenuCommands. |
Поля
BreakpointActionMenu |
Устаревшие..
Возвращает объект класса CommandID для меню действий точки останова. Это поле доступно только для чтения. |
BreakpointConditionMenu |
Устаревшие..
Возвращает объект класса CommandID для меню условия точки останова. Это поле доступно только для чтения. |
BreakpointConstraintsMenu |
Устаревшие..
Возвращает объект класса CommandID для меню ограничений точки останова. Это поле доступно только для чтения. |
BreakpointHitCountMenu |
Устаревшие..
Возвращает объект класса CommandID для меню количества обращений точки останова. Это поле доступно только для чтения. |
BreakpointLocationMenu |
Устаревшие..
Возвращает объект класса CommandID для меню расположения точки останова. Это поле доступно только для чтения. |
ChangeTheme |
Устаревшие..
Возвращает объект класса CommandID для меню изменения темы. Это поле доступно только для чтения. |
ClearBreakpointsMenu |
Устаревшие..
Объект класса CommandID может использоваться для доступа к меню очистки точек останова. Это поле доступно только для чтения. |
Collapse |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню свертывания. Это поле доступно только для чтения. |
CopyToClipboard |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню копирования. Это поле доступно только для чтения. |
CreateTheme |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню создания темы. Это поле доступно только для чтения. |
DebugCommandSetId |
Устаревшие..
Предоставляет уникальный идентификатор для набора команд отладки. Это поле доступно только для чтения. |
DebugStepBranchMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню разветвления этапа отладки. Это поле доступно только для чтения. |
DebugStepInstanceMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню экземпляра разветвления этапа отладки. Это поле доступно только для чтения. |
DebugWorkflowGroupId |
Устаревшие..
Предоставляет уникальный идентификатор для группы меню рабочего процесса отладки. Это поле доступно только для чтения. |
DefaultFilter |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню фильтра по умолчанию. Это поле доступно только для чтения. |
DefaultPage |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню страницы по умолчанию. Это поле доступно только для чтения. |
DesignerActionsMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню действий конструктора. Это поле доступно только для чтения. |
DesignerProperties |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню свойств конструктора. Это поле доступно только для чтения. |
Disable |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню отключения. Это поле доступно только для чтения. |
Enable |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню включения. Это поле доступно только для чтения. |
EnableBreakpointMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню включения точки останова. Это поле доступно только для чтения. |
ExecutionStateMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню состояния выполнения. Это поле доступно только для чтения. |
Expand |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню развертывания. Это поле доступно только для чтения. |
FirstZoomCommand |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню первого увеличения. Это поле доступно только для чтения. |
GotoDisassemblyMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню перехода к дизассемблированию. Это поле доступно только для чтения. |
InsertBreakpointMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню вставки точки останова. Это поле доступно только для чтения. |
InsertTracePointMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню вставки точки трассировки. Это поле доступно только для чтения. |
LastZoomCommand |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню последнего увеличения. Это поле доступно только для чтения. |
MenuGuid |
Устаревшие..
Предоставляет уникальный идентификатор для меню. Это поле доступно только для чтения. |
NewDataBreakpointMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню точки останова новых данных. Это поле доступно только для чтения. |
NewFileTracePointMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню точки трассировки файла. Это поле доступно только для чтения. |
PageDown |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню PageDown. Это поле доступно только для чтения. |
PageLayoutMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню разметки страницы. Это поле доступно только для чтения. |
PageSetup |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню настройки страницы. Это поле доступно только для чтения. |
PageUp |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню PageUp. Это поле доступно только для чтения. |
Pan |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню сдвига. Это поле доступно только для чтения. |
PanMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню сдвига. Это поле доступно только для чтения. |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню печати. Это поле доступно только для чтения. |
|
PrintPreview |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню предварительного просмотра. Это поле доступно только для чтения. |
PrintPreviewPage |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню страницы предварительного просмотра. Это поле доступно только для чтения. |
RunToCursorMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню выполнения до позиции курсора. Это поле доступно только для чтения. |
SaveAsImage |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню сохранения в виде изображения. Это поле доступно только для чтения. |
SelectionMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню выбора. Это поле доступно только для чтения. |
SetNextStatementMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню «Задать следующий оператор». Это поле доступно только для чтения. |
ShowAll |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню «Показать все файлы». Это поле доступно только для чтения. |
ShowNextStatementMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню «Показать следующий оператор». Это поле доступно только для чтения. |
ToggleBreakpointMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню переключения точки останова. Это поле доступно только для чтения. |
VerbGroupActions |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню действий группы команд. Это поле доступно только для чтения. |
VerbGroupDesignerActions |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню действий конструктора группы команд. Это поле доступно только для чтения. |
VerbGroupEdit |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню группы команд редактирования. Это поле доступно только для чтения. |
VerbGroupGeneral |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню группы общих команд. Это поле доступно только для чтения. |
VerbGroupMisc |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню группы прочих команд. Это поле доступно только для чтения. |
VerbGroupOptions |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню группы команд параметров. Это поле доступно только для чтения. |
VerbGroupView |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню группы команд просмотра. Это поле доступно только для чтения. |
WorkflowCommandSetId |
Устаревшие..
Предоставляет уникальный идентификатор для набора команд рабочего процесса. Это поле доступно только для чтения. |
WorkflowToolBar |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню панели инструментов рабочего процесса. Это поле доступно только для чтения. |
Zoom100Mode |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню масштаба 100%. Это поле доступно только для чтения. |
Zoom150Mode |
Устаревшие..
Объект CommandID, который может использоваться для доступа к меню масштаба 150 %. Это поле доступно только для чтения. |
Zoom200Mode |
Устаревшие..
Объект CommandID, который может использоваться для доступа к меню масштаба 200 %. Это поле доступно только для чтения. |
Zoom300Mode |
Устаревшие..
Объект CommandID, который может использоваться для доступа к меню масштаба 300 %. Это поле доступно только для чтения. |
Zoom400Mode |
Устаревшие..
Объект CommandID, который может использоваться для доступа к меню масштаба 400 %. Это поле доступно только для чтения. |
Zoom50Mode |
Устаревшие..
Объект CommandID, который может использоваться для доступа к меню масштаба 50 %. Это поле доступно только для чтения. |
Zoom75Mode |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню масштаба 75%. Это поле доступно только для чтения. |
ZoomIn |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню увеличения. Это поле доступно только для чтения. |
ZoomLevelCombo |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню поля со списком степеней увеличения. Это поле доступно только для чтения. |
ZoomLevelListHandler |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню обработчика списка степеней увеличения. Это поле доступно только для чтения. |
ZoomMenu |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню масштабирования. Это поле доступно только для чтения. |
ZoomOut |
Устаревшие..
Объект класса CommandID, который может использоваться для доступа к меню уменьшения. Это поле доступно только для чтения. |
Методы
Equals(Object) |
Устаревшие..
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Устаревшие..
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Устаревшие..
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Устаревшие..
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Устаревшие..
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |