Udostępnij za pośrednictwem


Tworzenie plików vsct

W tym dokumencie pokazano, jak utworzyć plik vsct, aby dodać elementy menu, paski narzędzi i inne elementy interfejsu użytkownika do zintegrowanego środowiska projektowego (IDE) programu Visual Studio. Te kroki należy wykonać podczas dodawania elementów interfejsu użytkownika do pakietu programu Visual Studio (VSPackage), który nie ma jeszcze pliku vsct .

W przypadku nowych projektów zalecamy użycie szablonu pakietu programu Visual Studio, ponieważ generuje on plik vsct , który w zależności od wybranych opcji zawiera już wymagane elementy polecenia menu, okna narzędzi lub edytora niestandardowego. Możesz zmodyfikować ten plik vsct , aby spełnić wymagania pakietu VSPackage. Aby uzyskać więcej informacji na temat modyfikowania pliku vsct , zobacz przykłady w temacie Rozszerzanie menu i poleceń.

Tworzenie pliku

Utwórz plik vsct w tych fazach: utwórz strukturę plików i zasobów, zadeklaruj elementy interfejsu użytkownika, umieść elementy interfejsu użytkownika w środowisku IDE i dodaj wszelkie wyspecjalizowane zachowania.

Struktura plików

Podstawową strukturą pliku vsct jest element główny CommandTable zawierający element Commands i element Symbols .

Aby utworzyć strukturę plików

  1. Dodaj plik vsct do projektu, wykonując kroki opisane w temacie Instrukcje: tworzenie pliku vsct.

  2. Dodaj wymagane przestrzenie nazw do CommandTable elementu, jak pokazano w poniższym przykładzie:

    <CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    
  3. W elemmencie CommandTable dodaj Commands element do hostowania wszystkich niestandardowych menu, pasków narzędzi, grup poleceń i poleceń. Aby elementy niestandardowego interfejsu użytkownika mogły być ładowane, Commands element musi mieć jego Package atrybut ustawiony na nazwę pakietu.

    Po elemecie Commands dodaj Symbols element w celu zdefiniowania identyfikatorów GUID pakietu oraz nazw i identyfikatorów poleceń dla elementów interfejsu użytkownika.

Dołączanie zasobów programu Visual Studio

Użyj elementu Extern , aby uzyskać dostęp do plików definiujących polecenia programu Visual Studio i menu, które są wymagane do umieszczania elementów interfejsu użytkownika w środowisku IDE. Jeśli użyjesz poleceń zdefiniowanych poza pakietem, użyj elementu UsedCommands , aby poinformować program Visual Studio.

Aby uwzględnić zasoby programu Visual Studio

  1. W górnej CommandTable części elementu dodaj jeden Extern element dla każdego pliku zewnętrznego do przywołowania i ustaw href atrybut na nazwę pliku. Aby uzyskać dostęp do zasobów programu Visual Studio, możesz odwołać się do następujących plików nagłówków:

    • Stdidcmd.h: definiuje identyfikatory dla wszystkich poleceń udostępnianych przez program Visual Studio.

    • Vsshlids.h: zawiera identyfikatory poleceń dla menu programu Visual Studio.

  2. Jeśli pakiet wywołuje polecenia zdefiniowane przez program Visual Studio lub inne pakiety, dodaj UsedCommands element po elemecie Commands . Wypełnij ten element za pomocą elementu UsedCommand dla każdego wywoływanego polecenia, które nie jest częścią pakietu. guid Ustaw atrybuty UsedCommand i id elementów na identyfikator GUID i identyfikator wartości poleceń do wywołania.

    Aby uzyskać więcej informacji na temat znajdowania identyfikatorów GUID i identyfikatorów poleceń programu Visual Studio, zobacz Identyfikatory GUID i identyfikatory poleceń programu Visual Studio. Aby wywołać polecenia z innych pakietów, użyj identyfikatora GUID i identyfikatora polecenia zgodnie z definicją w pliku vsct dla tych pakietów.

Deklarowanie elementów interfejsu użytkownika

Zadeklaruj Symbols wszystkie nowe elementy interfejsu użytkownika w sekcji pliku vsct .

Aby zadeklarować elementy interfejsu użytkownika

  1. W elemecie Symbols dodaj trzy elementy GuidSymbol . Każdy GuidSymbol element ma name atrybut i value atrybut. name Ustaw atrybut tak, aby odzwierciedlał przeznaczenie elementu. Atrybut value przyjmuje identyfikator GUID. (Aby wygenerować identyfikator GUID, na Menu Narzędzia wybierz pozycję Utwórz identyfikator GUID, a następnie wybierz pozycję Format rejestru.

    Pierwszy GuidSymbol element reprezentuje pakiet i zazwyczaj nie ma elementów podrzędnych. Drugi GuidSymbol element reprezentuje zestaw poleceń i będzie zawierać wszystkie symbole definiujące menu, grupy i polecenia. Trzeci GuidSymbol element reprezentuje magazyn obrazów i zawiera symbole dla wszystkich ikon poleceń. Jeśli nie masz poleceń korzystających z ikon, możesz pominąć trzeci GuidSymbol element.

  2. W elemecie reprezentującym GuidSymbol zestaw poleceń dodaj co najmniej jeden element IDSymbol . Każdy z tych elementów reprezentuje menu, pasek narzędzi, grupę lub polecenie dodawane do interfejsu użytkownika.

    Dla każdego IDSymbol elementu ustaw name atrybut na nazwę, która będzie używana do odwoływania się do odpowiedniego menu, grupy lub polecenia, a następnie ustaw value element na numer szesnastkowy, który będzie reprezentować jego identyfikator polecenia. Żadne dwa IDSymbol elementy, które mają ten sam element nadrzędny, mogą mieć tę samą wartość.

  3. Jeśli którykolwiek z elementów interfejsu użytkownika wymaga ikon, dodaj IDSymbol element dla każdej ikony do elementu reprezentującego GuidSymbol magazyn obrazów.

Umieszczanie elementów interfejsu użytkownika w środowisku IDE

Elementy Menu, Grupy i Przyciski zawierają definicje wszystkich menu, grup i poleceń zdefiniowanych w pakiecie. Umieść te menu, grupy i polecenia w środowisku IDE przy użyciu elementu nadrzędnego, który jest częścią definicji elementu interfejsu użytkownika lub za pomocą elementu CommandPlacement zdefiniowanego gdzie indziej.

Każdy Menuelement , Groupi Button ma guid atrybut i id atrybut. Zawsze ustaw guid atrybut tak, aby był zgodny z nazwą GuidSymbol elementu, który reprezentuje zestaw poleceń, i ustaw id atrybut na nazwę elementu reprezentującego IDSymbol menu, grupę lub polecenie w Symbols sekcji.

Aby zdefiniować elementy interfejsu użytkownika

  1. Jeśli definiujesz nowe menu, podmenus, menu skrótów lub paski narzędzi, dodaj Menus element do Commands elementu. Następnie dla każdego menu do utworzenia dodaj element Menu do Menus elementu .

    guid Ustaw atrybuty Menu i id elementu, a następnie ustaw type atrybut na odpowiedni rodzaj menu. Można również ustawić priority atrybut w celu ustalenia względnej pozycji menu w grupie nadrzędnej.

    Uwaga

    Atrybut priority nie ma zastosowania do pasków narzędzi i menu kontekstowych.

  2. Wszystkie polecenia w środowisku IDE programu Visual Studio muszą być hostowane przez grupy poleceń, które są bezpośrednimi elementami podrzędnymi menu i pasków narzędzi. Jeśli dodasz nowe menu lub paski narzędzi do środowiska IDE, muszą one zawierać nowe grupy poleceń. Możesz również dodać grupy poleceń do istniejących menu i pasków narzędzi, aby można było wizualnie zgrupować polecenia.

    Po dodaniu nowych grup poleceń należy najpierw utworzyć Groups element, a następnie dodać do niego element Grupuj dla każdej grupy poleceń.

    guid Ustaw atrybuty i id każdego Group elementu, a następnie ustaw priority atrybut w celu ustalenia względnej pozycji grupy w menu nadrzędnym. Aby uzyskać więcej informacji, zobacz Tworzenie grup przycisków wielokrotnego użytku.

  3. Jeśli dodasz nowe polecenia do środowiska IDE, dodaj Buttons element do Commands elementu . Następnie dla każdego polecenia dodaj element Button do Buttons elementu .

    1. guid Ustaw atrybuty i id każdego Button elementu, a następnie ustaw type atrybut na odpowiedni przycisk. Można również ustawić priority atrybut w celu ustalenia względnej pozycji polecenia w grupie nadrzędnej.

      Uwaga

      Służy type="button" do standardowych poleceń menu i przycisków na paskach narzędzi.

    2. W elemecie Button dodaj element Strings zawierający element ButtonText i element CommandName . Element ButtonText zawiera etykietę tekstową elementu menu lub etykietkę narzędzia dla przycisku paska narzędzi. Element CommandName zawiera nazwę polecenia do użycia w obszarze poleceń.

    3. Jeśli polecenie będzie mieć ikonę , utwórz element Ikona w elemecie Button i ustaw jego guid atrybuty i id na Bitmap element ikony.

      Uwaga

      Przyciski paska narzędzi muszą mieć ikony.

    Aby uzyskać więcej informacji, zobacz MenuPolecenia a OleMenuCommands.

  4. Jeśli którekolwiek z poleceń wymaga ikon, dodaj element Mapy bitowe do Commands elementu . Następnie dla każdej ikony dodaj element Mapy bitowej do Bitmaps elementu . W tym miejscu określasz lokalizację zasobu mapy bitowej. Aby uzyskać więcej informacji, zobacz Dodawanie ikon do poleceń menu.

    Można polegać na strukturze rodzicielstwa, aby poprawnie umieścić większość menu, grup i poleceń. W przypadku bardzo dużych zestawów poleceń lub gdy menu, grupa lub polecenie musi być wyświetlane w wielu miejscach, zalecamy określenie umieszczania poleceń.

Aby polegać na elementach nadrzędnych w celu umieszczenia elementów interfejsu użytkownika w środowisku IDE

  1. W przypadku typowego elementu nadrzędnego utwórz Parent element w każdym Menuelemecie , Groupi Command zdefiniowanym w pakiecie.

    Elementem docelowym elementu Parent jest menu lub grupa, która będzie zawierać menu, grupę lub polecenie.

    1. guid Ustaw atrybut na nazwę GuidSymbol elementu, który definiuje zestaw poleceń. Jeśli element docelowy nie jest częścią pakietu, użyj identyfikatora GUID dla tego zestawu poleceń, zgodnie z definicją w odpowiednim pliku vsct .

    2. id Ustaw atrybut tak, aby był zgodny z atrybutem id menu lub grupy docelowej. Aby zapoznać się z listą menu i grup udostępnianych przez program Visual Studio, zobacz identyfikatory GUID i identyfikatory menu programu Visual Studio lub identyfikatory i identyfikatory pasków narzędzi programu Visual Studio.

    Jeśli masz dużą liczbę elementów interfejsu użytkownika do umieszczenia w środowisku IDE lub jeśli masz elementy, które powinny być wyświetlane w wielu miejscach, zdefiniuj ich umieszczanie w elemecie CommandPlacements , jak pokazano w poniższych krokach.

Aby użyć umieszczania poleceń do umieszczania elementów interfejsu użytkownika w środowisku IDE

  1. Po elemencie Commands dodaj element CommandPlacements.

  2. W elememencie CommandPlacements dodaj CommandPlacement element dla każdego menu, grupy lub polecenia, aby go umieścić.

    Każdy CommandPlacement element lub Parent element umieszcza jedno menu, grupę lub polecenie w jednej lokalizacji środowiska IDE. Element interfejsu użytkownika może mieć tylko jeden element nadrzędny, ale może mieć wiele umieszczania poleceń. Aby umieścić element interfejsu użytkownika w wielu lokalizacjach, dodaj CommandPlacement element dla każdej lokalizacji.

  3. guid Ustaw atrybuty i id każdego CommandPlacement elementu na menu hostingu lub grupę, tak samo jak w przypadku Parent elementu. Można również ustawić priority atrybut w celu ustalenia względnej pozycji elementu interfejsu użytkownika.

    Umieszczanie można mieszać za pomocą elementu nadrzędnego i umieszczania poleceń. Jednak w przypadku bardzo dużych zestawów poleceń zalecamy użycie tylko umieszczania poleceń.

Dodawanie wyspecjalizowanych zachowań

Możesz użyć elementu CommandFlag , aby zmodyfikować zachowanie menu i poleceń, na przykład, aby zmienić ich wygląd i widoczność. Możesz również mieć wpływ na to, kiedy polecenie jest widoczne za pomocą elementu VisibilityConstraints lub dodać skróty klawiaturowe za pomocą elementu KeyBindings. Niektóre rodzaje menu i poleceń mają już wbudowane wyspecjalizowane zachowania.

Aby dodać wyspecjalizowane zachowania

  1. Aby element interfejsu użytkownika był widoczny tylko w niektórych kontekstach interfejsu użytkownika, na przykład po załadowaniu rozwiązania, użyj ograniczeń widoczności.

    1. Po elemencie Commands dodaj element VisibilityConstraints.

    2. Dla każdego elementu interfejsu użytkownika do ograniczenia dodaj element VisibilityItem .

    3. Dla każdego VisibilityItem elementu ustaw guid atrybuty i id na menu, grupę lub polecenie, a następnie ustaw context atrybut na odpowiedni kontekst interfejsu użytkownika, zgodnie z definicją UIContextGuids80 w klasie.

  2. Aby ustawić widoczność lub dostępność elementu interfejsu użytkownika w kodzie, użyj co najmniej jednej z następujących flag poleceń:

    • DefaultDisabled

    • DefaultInvisible

    • DynamicItemStart

    • DynamicVisibility

    • NoShowOnMenuController

    • NotInTBList

    Aby uzyskać więcej informacji, zobacz element CommandFlag .

  3. Aby zmienić sposób wyświetlania elementu lub zmienić jego wygląd dynamicznie, użyj co najmniej jednej z następujących flag poleceń:

    • AlwaysCreate

    • CommandWellOnly

    • DefaultDocked

    • DontCache

    • DynamicItemStart

    • FixMenuController

    • IconAndText

    • Pict

    • StretchHorizontally

    • TextMenuUseButton

    • TextChanges

    • TextOnly

    Aby uzyskać więcej informacji, zobacz element CommandFlag .

  4. Aby zmienić sposób, w jaki element reaguje po odebraniu poleceń, użyj co najmniej jednej z następujących flag poleceń:

    • AllowParams

    • CaseSensitive

    • CommandWellOnly

    • FilterKeys

    • NoAutoComplete

    • NoButtonCustomize

    • NoKeyCustomize

    • NoToolbarClose

    • PostExec

    • RouteToDocs

    • TextIsAnchorCommand

    Aby uzyskać więcej informacji, zobacz element CommandFlag .

  5. Aby dołączyć skrót klawiaturowy zależny od menu lub elementu w menu, dodaj znak ampersand (&) w elemencie ButtonText menu lub elementu menu. Znak, który jest zgodny z znakiem i jest aktywnym skrótem klawiaturowym po otwarciu menu nadrzędnego.

  6. Aby dołączyć niezależny od menu skrót klawiaturowy do polecenia, użyj elementu KeyBindings . Aby uzyskać więcej informacji, zobacz element KeyBinding .

  7. Aby zlokalizować tekst menu, użyj LocCanonicalName elementu . Aby uzyskać więcej informacji, zobacz element Strings .

    Niektóre typy menu i przycisków obejmują wyspecjalizowane zachowania. Na poniższej liście opisano niektóre wyspecjalizowane typy menu i przycisków. Aby uzyskać informacje o innych typach, zobacz types opisy atrybutów w menu, przycisku i elementach kombi.

    • Pole kombi: pole kombi to lista rozwijana, która może być używana na pasku narzędzi. Aby dodać pola kombi do interfejsu użytkownika, utwórz element Kombi w elemecie Commands . Następnie dodaj element do Combos elementu Combo dla każdego pola kombi, aby dodać. Combo elementy mają te same atrybuty i elementy podrzędne co Button elementy, a także mają DefaultWidth i idCommandList atrybuty. Atrybut DefaultWidth ustawia szerokość w pikselach, a idCommandList atrybut wskazuje identyfikator polecenia używany do wypełnienia pola kombi.

    • Kontroler menu: kontroler menu to przycisk, który zawiera strzałkę obok niego. Kliknięcie strzałki powoduje otwarcie listy. Aby dodać kontroler menu do interfejsu użytkownika, utwórz Menu element i ustaw jego type atrybut na MenuController lub MenuControllerLatched, w zależności od żądanego zachowania. Aby wypełnić kontroler menu, ustaw go jako element nadrzędny Group elementu. Kontroler menu wyświetli wszystkie elementy podrzędne tej grupy na liście rozwijanej.