Возможности контекстного меню windows

Содержание
  1. Что такое контекстное меню Windows и способы его вызова
  2. Графический интерфейс
  3. Вызываем
  4. Наполнение
  5. Добавляем Shift
  6. Находим местоположение
  7. Настраиваем
  8. Контекстное меню Windows 7
  9. Что собой представляет контекстное меню Windows
  10. Вид и организация контекстного меню
  11. Дополнительное меню на Рабочем столе и в окнах программ
  12. Основные пункты контекстного меню
  13. Использование дополнительных команд контекстного меню
  14. Добавление и удаление команд в системном реестре
  15. Использование программы Context Menu Tuner
  16. Изменение кнопки доступа к контекстному меню
  17. Меню и контекстные меню Menus and context menus
  18. Выбор правильного элемента управления Is this the right control?
  19. MenuBar и MenuFlyout MenuBar vs. MenuFlyout
  20. MenuBar и CommandBar MenuBar vs. CommandBar
  21. Примеры Examples
  22. Сравнение меню и контекстных меню Menus vs. context menus
  23. Меню Menus
  24. Контекстные меню Context menus
  25. Значки Icons
  26. Создание всплывающего или контекстного меню Create a menu flyout or a context menu
  27. Исчезновение Light dismiss
  28. Создание строки меню Create a menu bar

Что такое контекстное меню Windows и способы его вызова

Для того чтобы компьютер понимал пользователя, а пользователь мог объяснить компьютеру что он от него хочет, существуют такие элементы, как меню (их несколько видов) и графический интерфейс. Эту публикацию мы посвятим одной из относящихся к этой теме категорий — как вызвать контекстное меню в Windows и что это такое.

Меню является элементом графического интерфейса Windows

Когда люди разговаривают друг с другом — они не задумываются о том, что язык общения является одним из видов интерфейса. В принципе, и пользователь, отдавая команды из набора доступного списка, получая запросы от ОС, открывая окна, пользуясь полосами прокрутки, использует графический интерфейс, не задумываясь о том, что это такое.

Графический интерфейс

Понятие интерфейса достаточно широко. Если же говорить о Контекстном Меню (Context Menu, англ.), как о составляющей графического интерфейса, то представлять себе его следует, как элемент диалога с операционной системой (компьютером).

Вызываем

Context Menu — это список (перечень, набор) команд, доступных пользователю относительного какого-то объекта. Теперь рассмотрим, как открывается контекстное меню. Перед тем как открыть контекстное меню нужно разместить курсор (мышку) на каком-то объекте (активируя его). А вызывать после этого можно по-разному:

  • Правой мышкой;
  • Комбинацией «шифт» и «F10»;
  • Также контекстное меню вызывается нажатием специальной кнопки — она расположена между «ALT» и «CTRL».

Набор его команд может быть различным и зависит от того над каким объектом было вызвано (в какой из областей экрана):

Наполнение

Context Menu иногда ещё называют меню «проводника» или «действий». Внешний облик его реально не зависит от объекта вызова, чего не скажешь о различном наполнении его командами.

Сравните Context Menu, вызванное на рабочем столе:

с Context Menu, вызванном над папкой:

Вывод — этот набор возможных действий зависит от того, к какому типу объекта в конкретном случае применяется (файл, ярлык, папка, рабочий стол и пр.).

Обратите внимание на первый рисунок — если в правом конце строки списка виден треугольник-стрелка, то это означает существование подменю в ней (в этом случае каталог подменю — открывшийся).

Добавляем Shift

Если, вызывая Context Menu правой мышкой, добавить к этому нажатие кнопки «Shift», то увидим увеличившийся от одной до нескольких строк список (справа). Это иногда придаёт дополнительное удобство:

Находим местоположение

Поскольку для файлов и каталогов Context Menu имеет разный набор команд, то и размещение его (и его настроек) в Виндовс-Реестре различно.

Для каталогов место его здесь:

Для файлов — уже в другой ветке реестра: в папках «shell» и «shellex\ContextMenuHandlers»:

Настраиваем

При добавлении на компьютер новых приложений список обновляется новыми пунктами, расширяется. Для некоторых пользователей работа с окном приобретает оттенок мучений. Посмотрите:

Кроме того, кому-то захочется подстроить перечень команд правой кнопки под свои вкусы и установленные программы. Такую реформацию проводят либо вручную, работая с Реестром, либо с помощью сторонних приложений. Этой теме будет посвящена отдельная наша публикация.

Из этой же публикации вы теперь знаете, как вызвать контекстное меню, что это такое, познакомились с видами, наполнением, узнали местонахождение.

Читайте далее — как можно с ним работать (модифицировать). Оставляйте свои комментарии, делитесь с друзьями полученной информацией.

Контекстное меню Windows 7

Каждый пользователь ОС Windows знает, что независимо от программы правой кнопкой мыши можно вызвать дополнительное, так называемое контекстное, меню, в котором располагается набор специальных команд и ссылок. Попробуем разобраться, для чего оно нужно и как с ним правильно работать.

Что собой представляет контекстное меню Windows

Говоря о контекстном меню «операционок» семейства Windows, сразу хочется отметить тот факт, что какой-то эксклюзивной разработкой корпорации Microsoft оно не является. В ОС Mac OS X или Linux тоже присутствует такой элемент.

Вообще, если разбираться, что собой представляет контекстное меню, его можно охарактеризовать как дополнительный набор команд для быстрого доступа к каким-либо функциям, скажем, без вызова определенного приложения или элемента управления.

Так, например, всем известно, что в контекстном меню всегда присутствует команда «Открыть с помощью…», после чего высвечивается список наиболее подходящих приложений для работы с файлом. Сами понимаете, насколько удобнее открыть файл здесь, чем взывать программу, а потом лезть в меню «Файл» и использовать строку «Открыть» или сочетание клавиш Ctrl + O.

Кроме того, помимо команд, здесь имеется и набор специальных инструментов, с помощью которых можно узнать многие вещи. Но об этом позже.

Вид и организация контекстного меню

Рассмотрим теперь, как организовано контекстное меню Windows 7. Наверное, каждый обращал внимание, что в самом меню присутствуют специальные разделители в виде тонких горизонтальных линий. Смысл их применения заключается в разграничении однотипных действий или команд, принадлежащих одной программе.

Тут стоит обратить внимание на то, что контекстное меню в, так сказать, «чистой» системе, сразу же после инсталляции, может очень сильно отличаться от того, что пользователь увидит после установки дополнительных программ и утилит. Связано это с тем, что очень многие установочные пакеты команды быстрого доступа к некоторым своим основным функциям уже в процессе установки интегрируют непосредственно в это меню.

Более всего это касается антивирусного ПО, медиапроигрывателей, программ для работы с образами дисков, архиваторов и т.д. В принципе, пользователь может и сам добавлять собственные пункты для обеспечения удобства работы.

Читайте также:  Snmp браузер для windows

Дополнительное меню на Рабочем столе и в окнах программ

Наверняка, каждый юзер обращал внимание, что контекстное меню в разных программах или на том же рабочем столе отличается по списку пунктов и команд. Это естественно. К примеру, если вызвать меню на рабочем столе, становится понятно, что там строка «Открыть», используемая для папок и файлов, не нужна. Другое дело, когда щелчок кнопкой мыши производится на ярлыке или сохраненном файле, расположенном именно на рабочем столе.

Как уже понятно, в разных программах контекстное меню тоже может содержать непохожие пункты. В данном случае все зависит от специфики приложения. Сравните хотя бы обычный Проводник и текстовый редактор Word. Но пока речь пойдет о «родных» командах ОС Windows.

Основные пункты контекстного меню

Выпадающие меню присутствуют практически везде, даже в главном меню «Пуск». В любом из них можно увидеть некоторые пункты, помеченные стрелочками. Это делается для того чтобы показать, что сам пункт содержит дополнительные подпункты.

Как обычно, для файлов и папок в самом верху обязательно присутствует команда «Открыть», выделенная жирным шрифтом. При клике на этой строке применительно к файлам произойдет их открытие в какой-либо программе. Нужно знать, что выделение происходит только в случае задания самим приложением ассоциации файла именно с этой программой. В противном случае использование этой команды приведет только к тому, что система предложит произвести обзор и выбрать наиболее подходящее приложение. Если с файлом сопоставлено несколько программ, можно использовать строку «Открыть с помощью…», в которой и будет находиться список программ, работающих с расширением искомого файла.

Само собой разумеется, что в контекстном меню того же Проводника присутствуют команды типа «Копировать», «Удалить», «Вырезать», «Вставить», «Отправить», «Переименовать», «Создать ярлык» и т.д. Это знает даже ребенок. С другой стороны, здесь имеется и строка «Свойства», применение которой предоставляет пользователю полную информацию об используемом объекте.

Так, например, при вызове такой команды при клике на значке компьютера на рабочем столе можно получить общие сведения об основных параметрах компьютерной системы и установленной «операционке». Для рабочего стола в контекстном меню предусмотрено в основном только использование настроек и параметров синхронизации папок с атрибутами общего доступа.

В некоторых меню имеются и средства администрирования или инспектирования выбранных элементов.

Использование дополнительных команд контекстного меню

Теперь поговорим о некоторых дополнительных командах. Если привести пример установленного антивируса, можно заметить, что в контекстном меню всегда будут присутствовать строки типа «Сканировать» или «Проверить с помощью…». Согласитесь, очень удобно.

То же самое касается архиваторов, ведь добавить файл (папку) в архив или извлечь его оттуда можно одним щелчком.

Многие проигрыватели мультимедиа ведут себя подобным образом, интегрируя собственные команды в контекстное меню системы. Чаще всего здесь для файлов мультимедиа появляются пункты добавления в плейлист или воспроизведения (видео и аудио), а для графики – это команда просмотра. Вообще, тут все зависит от того, какая именно программа интегрирует в меню собственные командные строки, и какие объекты с ней сопоставлены.

Добавление и удаление команд в системном реестре

Вот мы и добрались до решения проблемы – как добавить в контекстное меню собственные пункты. Сделать это можно несколькими способами. В данном случае можно предложить как минимум три варианта. Два из них касаются редактирования системного реестра, а один – использования специализированных утилит.

В системном реестре можно воспользоваться добавлением ключей, но если не знать, какие именно ключи и их значения отвечают за тот или иной процесс, можно потратить уйму времени, ничего не добиться в итоге, да систему довести до состояния полной неработоспособности.

Поэтому рассмотрим наиболее простой способ работы с реестром. Сначала в меню «Выполнить» используется команда доступа к редактору regedit. Тут нужно зайти в раздел HKEY_CLASSES_ROOT, найти AllFilesystemObjects, затем shellex и наконец, ContextMenuHandlers.

В последнем разделе выбирается дополнительное меню кликом правой клавишей мыши и выполняется команда создания нового объекта и ключа «Новый» и «Ключ» соответственно. Теперь нужно ввести название для вновь созданного ключа, которое будет отображаться в контекстном меню, после чего выбираем команду «Изменить» и в обзоре указываем место расположения программы или приложения, которое будет отвечать за новое действие. Подтверждаем выбор и перезагружаем систему.

Удаление ключей в этом разделе приведет к тому, что соответствующая команда из меню будет исчезнет. Но если вы не знаете, какой ключ за что отвечает, стандартную конфигурацию лучше не изменять.

Использование программы Context Menu Tuner

Однако, как показывает практика, рыться в реестре особо никому не хочется (мало ли что может случиться). Поэтому можно посоветовать специальные утилиты для добавления и удаления пунктов в контекстное меню «операционки».

Одной из самых простых, но весьма функциональных, является утилита под названием Context Menu Tuner. Она поможет быстро изменить меню до неузнаваемости. Здесь все просто. Главное окно включает в себя две панели. В левой располагаются команды, в правой – папки и основные параметры. Как уже понятно, нет ничего проще, чем выбрать нужную команду и кнопкой добавить ее, скажем, в меню рабочего стола. Удаление производится обратным действием.

Отдельно стоит отметить некоторые дополнительные опции. Сначала можно выбрать какое-то расширение файла, а только потом сопоставить с ним соответствующую команду и программу.

Изменение кнопки доступа к контекстному меню

В стандартном варианте по умолчанию кнопка контекстного меню – это правая кнопка мыши. Очень просто можно поменять кнопки местами и вызывать контекстное меню левым нажатием. Для этого нужно в настройки мыши в Панели управления и произвести необходимые манипуляции. Только и всего.

Меню и контекстные меню Menus and context menus

В меню и контекстных меню отображается список команд или параметров, когда пользователь запрашивает их. Menus and context menus display a list of commands or options when the user requests them. Для отображения отдельного встроенного меню используйте всплывающее меню. Use a menu flyout to show a single, inline menu. Используйте строку меню, чтобы отобразить набор меню в горизонтальной строке, обычно в верхней части окна приложения. Use a menu bar to show a set of menus in a horizontal row, typically at the top of an app window. Каждое меню может включать пункты меню и вложенные меню. Each menu can have menu items and sub-menus.

Читайте также:  Cron script in linux

Получение библиотеки пользовательского интерфейса Windows Get the Windows UI Library

Элемент управления MenuBar является частью библиотеки пользовательского интерфейса Windows — пакета NuGet, который содержит новые элементы управления и компоненты пользовательского интерфейса для приложений для Windows. The MenuBar control is included as part of the Windows UI Library, a NuGet package that contains new controls and UI features for Windows apps. Дополнительные сведения, включая инструкции по установке, см. в обзорной статье о библиотеке пользовательского интерфейса Windows. For more info, including installation instructions, see the Windows UI Library overview.

API-интерфейсы библиотеки пользовательского интерфейса Windows: Класс MenuBar Windows UI Library APIs: MenuBar class

Выбор правильного элемента управления Is this the right control?

Меню и контекстные меню экономят место, упорядочивая команды и скрывая их до востребования. Menus and context menus save space by organizing commands and hiding them until the user needs them. Если определенная команда используется часто, и имеется достаточно свободного места, вы можете разместить ее на отдельном элементе, а не в меню, чтобы для ее использования пользователям не приходилось открывать меню. If a particular command will be used frequently and you have the space available, consider placing it directly in its own element, rather than in a menu, so that users don’t have to go through a menu to get to it.

Меню и контекстные меню предназначены для упорядочения команд. Для отображения произвольного содержимого, например уведомлений или запросов подтверждения, используйте диалоговые окна и всплывающие элементы. Menus and context menus are for organizing commands; to display arbitrary content, such as a notification or confirmation request, use a dialog or a flyout.

Чтобы отобразить меню во всплывающем окне, присоединенном к элементу пользовательского интерфейса на холсте, используйте элемент управления MenuFlyout для размещения пунктов меню. To show a menu in a flyout attached to an on-canvas UI element, use the MenuFlyout control to host your menu items. Вы можете вызывать всплывающее меню как обычное меню или контекстное меню. You can invoke a menu flyout either as a regular menu or as a context menu. Всплывающее меню содержит единое меню верхнего уровня и вложенные меню (необязательно). A menu flyout hosts a single top-level menu (and optional sub-menus).

Строка меню (MenuBar) позволяет отображать набор из нескольких меню верхнего уровня в горизонтальной строке. To show a set of multiple top-level menus in a horizontal row, use a menu bar. Строка меню обычно размещается в верхней части окна приложения. You typically position the menu bar at the top of the app window.

MenuBar и CommandBar представляют области, которые можно использовать для отображения команд пользователям. MenuBar and CommandBar both represent surfaces that you can use to expose commands to your users. MenuBar обеспечивает простой и быстрый способ выводить набор команд в приложениях, которым могут понадобиться дополнительные функции упорядочения или группирования, недоступные в CommandBar. The MenuBar provides a quick and simple way to expose a set of commands for apps that might need more organization or grouping than a CommandBar allows.

MenuBar также можно использовать в сочетании с CommandBar. You can also use a MenuBar in conjunction with a CommandBar. MenuBar позволяет отобразить все команды, а CommandBar — выделить наиболее часто используемые команды. Use the MenuBar to provide the bulk of the commands, and the CommandBar to highlight the most used commands.

Примеры Examples

Если у вас установлено приложение галереи элементов управления XAML, щелкните здесь, чтобы открыть приложение и увидеть MenuFlyout в действии. If you have the XAML Controls Gallery app installed, click here to open the app and see the MenuFlyout in action.

Сравнение меню и контекстных меню Menus vs. context menus

Меню и контекстные меню сходны по внешнему виду и возможному содержимому. Menus and context menus are similar in how they look and what they can contain. Фактически для их создания можно использовать один и тот же элемент управления — MenuFlyout. In fact, you can use the same control, MenuFlyout, to create them. Различие заключается в том, как пользователь получает к ним доступ. The difference is how you let the user access it.

Когда следует использовать меню или контекстное меню? When should you use a menu or a context menu?

  • Если главным элементом является кнопка или другой элемент команды, основная задача которого состоит в предоставлении дополнительных команд, используйте меню. If the host element is a button or some other command element whose primary role is to present additional commands, use a menu.
  • Если главным элементом является другой тип элемента с иной основной задачей (такой как представление текста или изображения), используйте контекстное меню. If the host element is some other type of element that has another primary purpose (such as presenting text or an image), use a context menu.

Например, меню можно использовать на кнопке для возможности фильтрации и сортировки списка. For example, use a menu on a button to provide filtering and sorting options for a list. В этом случае основное назначение элемента управления кнопки — предоставление доступа к меню. In this scenario, the primary purpose of the button control is to provide access to a menu.

Если вам требуется добавить команды (такие как «вырезать», «копировать» и «вставить») к элементу текста, используйте контекстное меню вместо обычного. If you want to add commands (such as cut, copy, and paste) to a text element, use a context menu instead of a menu. В этом случае основная задача элемента текста заключается в представлении и редактировании текста. Дополнительные команды (такие как «вырезать», «копировать» и «вставить») второстепенны и относятся к контекстному меню. In this scenario, the primary role of the text element is to present and edit text; additional commands (such as cut, copy, and paste) are secondary and belong in a context menu.

Меню Menus

  • обладают одной точкой входа (например, меню «Файл» в верхней части экрана), которая отображается постоянно; Have a single entry point (a File menu at the top of the screen, for example) that is always displayed.
  • обычно прикреплены к кнопке или родительскому элементу меню; Are usually attached to a button or a parent menu item.
  • вызываются левым щелчком мыши (или эквивалентным действием, например нажатием пальцем); Are invoked by left-clicking (or an equivalent action, such as tapping with your finger).
  • связаны с элементом посредством его свойств Flyout или FlyoutBase.AttachedFlyout либо сгруппированы в строку меню в верхней части окна приложения. Are associated with an element via its Flyout or FlyoutBase.AttachedFlyout properties, or grouped in a menu bar at the top of the app window.

Контекстные меню Context menus

  • Подключаются к одному элементу и отображают вспомогательные команды. Are attached to a single element and display secondary commands.
  • Вызываются щелчком правой кнопки мыши (или эквивалентным действием, например нажатием и удерживанием пальцем). Are invoked by right clicking (or an equivalent action, such as pressing and holding with your finger).
  • связаны с элементом посредством его свойства ContextFlyout. Are associated with an element via its ContextFlyout property.

Значки Icons

Рекомендуем добавлять значки пунктов меню для: Consider providing menu item icons for:

  • наиболее часто используемых пунктов; The most commonly used items.
  • пунктов меню, значок которых является стандартным или хорошо известным; Menu items whose icon is standard or well known.
  • пунктов меню, значок которых хорошо иллюстрирует предназначение команды. Menu items whose icon well illustrates what the command does.

Вы не обязаны добавлять значки для команд без стандартных зрительных образов. Don’t feel obligated to provide icons for commands that don’t have a standard visualization. Загадочные значки бесполезны, создают визуальные помехи и не позволяют пользователям сосредоточиться на важных пунктах меню. Cryptic icons aren’t helpful, create visual clutter, and prevent users from focusing on the important menu items.

Размер значков в MenuFlyoutItem составляет 16×16 пикселей. The size of the icon in a MenuFlyoutItem is 16x16px. Если вы используете SymbolIcon, FontIcon или PathIcon, значок автоматически масштабируется до правильного размера без потери качества. If you use SymbolIcon, FontIcon, or PathIcon, the icon automatically scales to the correct size with no loss of fidelity. При использовании BitmapIcon убедитесь, что размер элемента равен 16×16 пикселей. If you use BitmapIcon, ensure that your asset is 16x16px.

Создание всплывающего или контекстного меню Create a menu flyout or a context menu

Для создания всплывающего или контекстного меню используется класс MenuFlyout. To create a menu flyout or a context menu, you use the MenuFlyout class. Чтобы задать содержимое меню, необходимо добавить объекты MenuFlyoutItem, MenuFlyoutSubItem, ToggleMenuFlyoutItem, RadioMenuFlyoutItem и MenuFlyoutSeparator в элемент MenuFlyout. You define the contents of the menu by adding MenuFlyoutItem, MenuFlyoutSubItem, ToggleMenuFlyoutItem, RadioMenuFlyoutItem and MenuFlyoutSeparator objects to the MenuFlyout.

Эти объекты предназначены для: These objects are for:

  • MenuFlyoutItem — выполнения немедленного действия; MenuFlyoutItem—Performing an immediate action.
  • MenuFlyoutSubItem — содержания каскадного списка пунктов меню. MenuFlyoutSubItem—Containing a cascading list of menu items.
  • ToggleMenuFlyoutItem — включения или отключения параметра; ToggleMenuFlyoutItem—Switching an option on or off.
  • RadioMenuFlyoutItem — переключения между взаимоисключающими пунктами меню. RadioMenuFlyoutItem—Switching between mutually-exclusive menu items.
  • MenuFlyoutSeparator — визуального разделения элементов меню. MenuFlyoutSeparator—Visually separating menu items.

В этом примере создается MenuFlyout и используется свойство ContextFlyout, доступное для большинства элементов управления, для отображения MenuFlyout в качестве контекстного меню. This example creates a MenuFlyout and uses the ContextFlyout property, a property available to most controls, to show the MenuFlyout as a context menu.

Следующий пример почти идентичен, но вместо использования свойства ContextFlyout для отображения класса MenuFlyout как контекстного меню в нем используется свойство FlyoutBase.ShowAttachedFlyout для его отображения как меню. The next example is nearly identical, but instead of using the ContextFlyout property to show the MenuFlyout class as a context menu, the example uses the FlyoutBase.ShowAttachedFlyout property to show it as a menu.

Исчезновение Light dismiss

Элементы управления с исчезновением, такие как меню, контекстные меню и другие всплывающие элементы, захватывают фокус клавиатуры или геймпада внутри промежуточного пользовательского интерфейса, пока не будут закрыты. Light dismiss controls such as menus, context menus, and other flyouts, trap keyboard and gamepad focus inside the transient UI until dismissed. Для предоставления визуальной подсказки по этому поведению элементы управления с исчезновением на Xbox отображают наложение, затемняющее видимость вне области действия пользовательского интерфейса. To provide a visual cue for this behavior, light dismiss controls on Xbox will draw an overlay that dims the visibility of out of scope UI. Это поведение можно изменить с помощью свойства LightDismissOverlayMode. This behavior can be modified with the LightDismissOverlayMode property. По умолчанию во временно отображаемых элементах пользовательского интерфейса наложение с исчезновением используется на Xbox ( автоматически ), но не в других семействах устройств. By default, transient UIs will draw the light dismiss overlay on Xbox ( Auto ) but not other device families. Вы можете принудительно настроить постоянное включение или отключение наложения. You can choose to force the overlay to be always On or always Off.

Создание строки меню Create a menu bar

Для использования MenuBar требуется Windows 10, версия 1809 (SDK 17763) или более поздней версии либо библиотека пользовательского интерфейса Windows. MenuBar requires Windows 10, version 1809 (SDK 17763) or later, or the Windows UI Library.

Для создания меню в строке меню используйте те же элементы, что и для всплывающего меню. You use the same elements to create menus in a menu bar as in a menu flyout. Тем не менее вместо группирования объектов MenuFlyoutItem в элементе MenuFlyout следует сгруппировать их в элементе MenuBarItem. However, instead of grouping MenuFlyoutItem objects in a MenuFlyout, you group them in a MenuBarItem element. Каждый элемент MenuBarItem добавляется к MenuBar как меню верхнего уровня. Each MenuBarItem is added to the MenuBar as a top level menu.

В этом примере показано только создание структуры пользовательского интерфейса, но не показана реализация всех команд. This example shows only how to create the UI structure, but does not show implementation of any of the commands.

Читайте также:  Shellexview для windows 10
Оцените статью
XAML Controls Gallery XAML Controls Gallery