Udostępnij za pośrednictwem


Tworzenie grup przycisków wielokrotnego użytku

Grupa poleceń to kolekcja poleceń, które zawsze pojawiają się razem na menu lub pasku narzędzi. Każdą grupę poleceń można ponownie użyć, przypisując ją do różnych menu nadrzędnych w sekcji CommandPlacements pliku vsct .

Grupy poleceń zwykle zawierają przyciski, ale mogą również zawierać inne menu lub pola kombi.

Aby utworzyć grupę przycisków wielokrotnego użytku

  1. Utwórz projekt VSIX o nazwie ReusableButtons. Aby uzyskać więcej informacji, zobacz Create an extension with a menu command (Tworzenie rozszerzenia za pomocą polecenia menu).

  2. Po otwarciu projektu dodaj niestandardowy szablon elementu polecenia o nazwie ReusableCommand. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Dodaj>nowy element. W oknie dialogowym Dodawanie nowego elementu przejdź do pozycji Visual C#>Rozszerzalność i wybierz pozycję Polecenie niestandardowe. W polu Nazwa w dolnej części okna zmień nazwę pliku polecenia na ReusableCommand.cs.

  3. W pliku .vsct przejdź do sekcji Symbole i znajdź element GuidSymbol zawierający grupy i polecenia dla projektu. Powinien mieć nazwę guidReusableCommandPackageCmdSet.

  4. Dodaj identyfikator IDSymbol dla każdego przycisku, który zostanie dodany do grupy, jak w poniższym przykładzie.

    <GuidSymbol name="guidReusableCommandPackageCmdSet" value="{7f383b2a-c6b9-4c1d-b4b8-a26dc5b60ca1}">
        <IDSymbol name="MyMenuGroup" value="0x1020" />
        <IDSymbol name="ReusableCommandId" value="0x0100" />
        <IDSymbol name="SecondReusableCommandId" value="0x0200" />
    </GuidSymbol>
    

    Domyślnie szablon elementu polecenia tworzy grupę o nazwie MyMenuGroup i przycisk zawierający podaną nazwę wraz z wpisem IDSymbol dla każdego z nich.

  5. W sekcji Grupy utwórz element Grupa, który ma ten sam identyfikator GUID i atrybuty identyfikatora co te podane w sekcji Symbole. Możesz również użyć istniejącej grupy lub użyć wpisu dostarczonego przez szablon polecenia, jak w poniższym przykładzie. Ta grupa jest wyświetlana w menu Narzędzia

    <Groups>
        <Group guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600">
              <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
        </Group>
    </Groups>
    

Aby utworzyć grupę przycisków do ponownego użycia

  1. Polecenie lub menu można umieścić w grupie przy użyciu grupy jako elementu nadrzędnego w definicji polecenia lub menu albo przez umieszczenie polecenia lub menu w grupie przy użyciu sekcji CommandPlacements.

    W sekcji Przyciski zdefiniuj przycisk zawierający grupę jako element nadrzędny lub użyj przycisku dostarczonego przez szablon pakietu, jak pokazano w poniższym przykładzie.

    <Button guid="guidReusableCommandPackageCmdSet" id="ReusableCommandId" priority="0x0100" type="Button">
        <Parent guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" />
        <Icon guid="guidImages" id="bmpPic1" />
        <Strings>
            <ButtonText>Invoke ReusableCommand</ButtonText>
        </Strings>
    </Button>
    
  2. Jeśli przycisk musi pojawić się w więcej niż jednej grupie, utwórz dla niego wpis w sekcji CommandPlacements, który musi zostać umieszczony po sekcji Polecenia. Ustaw identyfikator GUID i atrybuty identyfikatora elementu CommandPlacement tak, aby były zgodne z atrybutami przycisku, który chcesz umieścić, a następnie ustaw identyfikator GUID i identyfikator jego elementu nadrzędnego na te z grupy docelowej, jak pokazano w poniższym przykładzie.

    <CommandPlacements>
        <CommandPlacement guid="guidReusableCommandPackageCmdSet" id="SecondReusableCommandId" priority="0x105">
          <Parent guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" />
        </CommandPlacement>
    </CommandPlacements>
    

    Uwaga

    Wartość pola Priorytet określa położenie polecenia w nowej grupie poleceń. Priorytety ustawione w elemencie CommandPlacement zastępują te ustawione w definicji elementu. Polecenia, które mają niższe wartości priorytetu, są wyświetlane przed poleceniami o wyższym priorytcie. Dozwolone są zduplikowane wartości priorytetu, ale względna pozycja poleceń o tej samej wartości priorytetu nie może być gwarantowana, ponieważ kolejność, w której devenv /setup polecenie tworzy końcowy interfejs z rejestru, może nie być spójne.

Aby umieścić grupę przycisków wielokrotnego użytku w menu

  1. Utwórz wpis w CommandPlacements sekcji . Ustaw identyfikator GUID i identyfikator CommandPlacement elementu na te z grupy, a następnie ustaw nadrzędny identyfikator GUID i identyfikator na te z lokalizacji docelowej.

    Sekcja CommandPlacements powinna zostać umieszczona tuż po sekcji Polecenia:

    <CommandTable>
    ...
      <Commands>... </Commands>
      <CommandPlacements>... </CommandPlacements>
    ...
    </CommandTable>
    

    Grupę poleceń można uwzględnić w więcej niż jednym menu. Menu nadrzędne może być jednym, który został utworzony, który jest dostarczany przez program Visual Studio (zgodnie z opisem w shellCmdDef.vsct lub SharedCmdDef.vsct) lub taki, który jest zdefiniowany w innym programie VSPackage. Liczba warstw nadrzędnych jest nieograniczona, o ile menu nadrzędne jest ostatecznie połączone z programem Visual Studio lub z menu skrótów wyświetlanym przez pakiet VSPackage.

    Poniższy przykład umieszcza grupę na pasku narzędzi Eksplorator rozwiązań po prawej stronie innych przycisków.

    <CommandPlacements>
        <CommandPlacement guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" priority="0xF00">
          <Parent guid="guidSHLMainMenu" id="IDM_VS_TOOL_PROJWIN"/>
        </CommandPlacement>
    </CommandPlacements>
    
    <CommandPlacements>
      <CommandPlacement guid="guidButtonGroupCmdSet" id="MyMenuGroup"
          priority="0x605">
        <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS" />
      </CommandPlacement>
    </CommandPlacements>