Freigeben über


Hinzufügen eines Befehls zur symbolleiste Projektmappen-Explorer

In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie der Symbolleiste Projektmappen-Explorer eine Schaltfläche hinzufügen.

Jeder Befehl auf einer Symbolleiste oder einem Menü wird in Visual Studio als Schaltfläche bezeichnet. Wenn auf die Schaltfläche geklickt wird, wird der Code im Befehlshandler ausgeführt. In der Regel werden verwandte Befehle gruppiert, um eine Gruppe zu bilden. Menüs oder Symbolleisten dienen als Container für Gruppen. Priorität bestimmt die Reihenfolge, in der einzelne Befehle in einer Gruppe im Menü oder auf der Symbolleiste angezeigt werden. Sie können verhindern, dass eine Schaltfläche auf der Symbolleiste oder im Menü angezeigt wird, indem Sie die Sichtbarkeit steuern. Ein Befehl, der in einem <VisibilityConstraints> Abschnitt der VSCT-Datei aufgeführt ist, wird nur im zugeordneten Kontext angezeigt. Die Sichtbarkeit kann nicht auf Gruppen angewendet werden.

Weitere Informationen zu Menüs, Symbolleistenbefehlen und VSCT-Dateien finden Sie unter Befehle, Menüs und Symbolleisten.

Hinweis

Verwenden Sie XML-Befehlstabellendateien (VSCT)-Dateien anstelle von Befehlstabellenkonfigurationsdateien (CTC), um zu definieren, wie Menüs und Befehle in Ihren VSPackages angezeigt werden. Weitere Informationen finden Sie in der Visual Studio-Befehlstabelle (. Vsct) Dateien.

Erstellen einer Erweiterung mit einem Menübefehl

Erstellen Sie ein VSIX-Projekt mit dem Namen SolutionToolbar. Fügen Sie eine Menübefehlselementvorlage namens ToolbarButton hinzu. Informationen dazu finden Sie unter Erstellen einer Erweiterung mit einem Menübefehl.

Hinzufügen einer Schaltfläche zur symbolleiste Projektmappen-Explorer

In diesem Abschnitt der exemplarischen Vorgehensweise wird gezeigt, wie Sie der Symbolleiste Projektmappen-Explorer eine Schaltfläche hinzufügen. Wenn auf die Schaltfläche geklickt wird, wird der Code in der Rückrufmethode ausgeführt.

  1. Wechseln Sie in der Datei ToolbarButtonPackage.vsct zum <Symbols> Abschnitt. Der <GuidSymbol> Knoten enthält die Menügruppe und den Befehl, die von der Paketvorlage generiert wurde. Fügen Sie diesem Knoten ein <IDSymbol> Element hinzu, um die Gruppe zu deklarieren, die den Befehl enthält.

    <IDSymbol name="SolutionToolbarGroup" value="0x0190"/>
    
  2. <Groups> Definieren Sie im Abschnitt nach dem vorhandenen Gruppeneintrag die neue Gruppe, die Sie im vorherigen Schritt deklariert haben.

    <Group guid="guidToolbarButtonPackageCmdSet"
           id="SolutionToolbarGroup" priority="0xF000">
            <Parent guid="guidSHLMainMenu" id="IDM_VS_TOOL_PROJWIN"/>
          </Group>
    

    Wenn Sie das übergeordnete GUID:ID-Paar auf guidSHLMainMenu die Projektmappen-Explorer Symbolleiste festlegen und IDM_VS_TOOL_PROJWIN diese Gruppe anordnen und einen Wert mit hoher Priorität festlegen, wird sie nach den anderen Befehlsgruppen platziert.

  3. Ändern Sie im <Buttons> Abschnitt die übergeordnete ID des generierten <Button> Eintrags, um die Gruppe widerzuspiegeln, die Sie im vorherigen Schritt definiert haben. Das geänderte <Button> Element sollte wie folgt aussehen:

    <Button guid="guidToolbarButtonPackageCmdSet" id="ToolbarButtonId" priority="0x0100" type="Button">
        <Parent guid="guidToolbarButtonPackageCmdSet" id="SolutionToolbarGroup" />
        <Icon guid="guidImages" id="bmpPicStrikethrough" />
        <Strings>
            <ButtonText>Invoke ToolbarButton</ButtonText>
        </Strings>
    </Button>
    
  4. Erstellen Sie das Projekt, und starten Sie das Debugging. Die experimentelle Instanz wird geöffnet.

    Die symbolleiste Projektmappen-Explorer sollte die neue Befehlsschaltfläche rechts neben den vorhandenen Schaltflächen anzeigen. Das Schaltflächensymbol ist die durchgestrichene Vorgehensweise.

  5. Klicken Sie auf die neue Schaltfläche.

    Ein Dialogfeld mit der Meldung ToolbarButtonPackage Inside SolutionToolbar.ToolbarButton.MenuItemCallback() sollte angezeigt werden.

Steuern der Sichtbarkeit einer Schaltfläche

In diesem Abschnitt der exemplarischen Vorgehensweise wird gezeigt, wie Sie die Sichtbarkeit einer Schaltfläche auf einer Symbolleiste steuern. Durch Festlegen eines Kontexts auf ein oder mehrere Projekte im <VisibilityConstraints> Abschnitt der Datei SolutionToolbar.vsct beschränken Sie die Anzeige einer Schaltfläche nur, wenn ein Projekt oder Projekte geöffnet sind.

So zeigen Sie eine Schaltfläche an, wenn ein oder mehrere Projekte geöffnet sind

  1. Fügen Sie im <Buttons> Abschnitt "ToolbarButtonPackage.vsct" dem vorhandenen <Button> Element zwei Befehlskennzeichnungen zwischen den Und-Tags <Icons><Strings> hinzu.

    <CommandFlag>DefaultInvisible</CommandFlag>
    <CommandFlag>DynamicVisibility</CommandFlag>
    

    Die DefaultInvisible Kennzeichnungen DynamicVisibility müssen so festgelegt werden, dass Einträge im <VisibilityConstraints> Abschnitt wirksam werden können.

  2. Erstellen Sie einen <VisibilityConstraints> Abschnitt mit zwei <VisibilityItem> Einträgen. Setzen Sie den neuen Abschnitt direkt nach dem schließenden </Commands> Tag.

    <VisibilityConstraints>
        <VisibilityItem guid="guidToolbarButtonPackageCmdSet"
              id="ToolbarButtonId"
              context="UICONTEXT_SolutionHasSingleProject" />
        <VisibilityItem guid="guidToolbarButtonPackageCmdSet"
              id="ToolbarButtonId"
              context="UICONTEXT_SolutionHasMultipleProjects" />
    </VisibilityConstraints>
    

    Jedes Sichtbarkeitselement stellt eine Bedingung dar, unter der die angegebene Schaltfläche angezeigt wird. Um mehrere Bedingungen anzuwenden, müssen Sie mehrere Einträge für dieselbe Schaltfläche erstellen.

  3. Erstellen Sie das Projekt, und starten Sie das Debugging. Die experimentelle Instanz wird geöffnet.

    Die Symbolleiste Projektmappen-Explorer enthält nicht die Schaltfläche "Durchgestrichen".

  4. Öffnen Sie eine beliebige Projektmappe, die ein Projekt enthält.

    Die Durchgestrichene Schaltfläche wird rechts neben den vorhandenen Schaltflächen auf der Symbolleiste angezeigt.

  5. Klicken Sie im Menü Datei auf Projektmappe schließen. Die Schaltfläche wird von der Symbolleiste ausgeblendet.

    Die Sichtbarkeit der Schaltfläche wird von Visual Studio gesteuert, bis das VSPackage geladen wird. Nachdem das VSPackage geladen wurde, wird die Sichtbarkeit der Schaltfläche durch das VSPackage gesteuert. Weitere Informationen finden Sie unter MenuCommands vs. OleMenuCommands.