Динамічне додавання елементів меню

Можна додати елементи меню під час виконання, вказавши DynamicItemStart команди прапор визначення кнопку заповнювач в файлі (.vsct) таблиці команд Visual Studio, то номера (в коді) меню елементи для відображення і обробки команди. Після завантаження VSPackage заповнювач замінюється пунктів динамічного меню.

Visual Studio використовує динамічні списки в недавно використані списку (MRU), яка відображає імена, недавно відкритих документів, і Windows список, який відображає імена вікон, відкритих в даний момент. DynamicItemStart Визначення команди прапор вказує, що команда заповнювач поки відкрите VSPackage. При відкритті VSPackage заповнювач замінюється 0 або кілька команд, які створюються під час виконання і додаються до списку динамічної. Ви не зможете становище відображається в меню, де відображається динамічний список, поки відкритий VSPackage. Щоб заповнити динамічний список, Visual Studio запитує VSPackage шукати команди з Ідентифікатором, перший символи якої є таким же, як ідентифікатор заповнювач. Якщо Visual Studio виявить відповідної команди, він додає ім'я команди динамічного списку. Потім збільшує ідентифікатор і шукає інший відповідної команди для додавання динамічного списку, поки не залишиться більше немає динамічних команд.

У цьому покроковому керівництві показано, як задати запускається проект в рішенні Visual Studio за допомогою команди оглядачі рішень інструментів. Він використовує контролер меню з динамічної списку проекти активного рішення. Для запобігання цієї команди при рішення не відкритий, або якщо відкрити рішення містить тільки один проект, VSPackage завантажується тільки в тому випадку, якщо рішення містить кілька проектів.

Створіть проект VSIX з ім'ям DynamicMenuItems.

При відкритті проекту, додавання шаблону елемента користувальницької команди і назвіть його DynamicMenu. Додаткові відомості див. У розділі створення розширення з командою меню.

Щоб створити контролер меню з пунктів динамічного меню на панелі інструментів, необхідно вказати наступні елементи:

Дві команди групи, що містить меню контролера і інший, що містить пункти меню в списку

Елемент меню одного типу MenuController

Дві кнопки, яка виступає як заповнювач для елементів меню та іншої, що надає значок і підказки на панелі інструментів.

У DynamicMenuPackage.vsct визначення ідентифікаторів команд. Перейдіть до розділу символи і замініть елементи IDSymbol guidDynamicMenuPackageCmdSet GuidSymbol блок. Необхідно визначити елементи IDSymbol для двох груп, контролера меню, команда заповнювач і команда прив'язки.

Додайте дві кнопки: як заповнювач для пунктів динамічного меню і як прив'язку для MenuController.

Батьківський елемент заповнювач кнопки MyMenuControllerGroup. Додавання параметрів командного рядка DynamicItemStart, DynamicVisibility і TextChanges до кнопки заповнювач. ButtonText не відображається.

Кнопка прив'язки містить значок і текст підказки. Також є батьківської прив'язки кнопки MyMenuControllerGroup. Додається прапор NoShowOnMenuController команди, щоб переконатися в тому, що кнопки не відображається в спадному меню контролера і прапор команди FixMenuController вносити постійні прив'язки.

Додати значок в проект (в папку «ресурси») і потім додайте посилання на нього в файлі .vsct. У цьому покроковому керівництві ми використовуємо значок стрілки, що входить в шаблон проекту.

Додайте розділ VisibilityConstraints за межами розділу команд безпосередньо перед розділом символи. (Може з'явитися попередження при додаванні після символів.) В цьому розділі гарантує, що контролер меню відображається лише при завантаженні рішення з декількома проектами.

Схожі статті