Hinzufügen einer Symbolleiste
In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie der Visual Studio-IDE eine Symbolleiste hinzufügen.
Eine Symbolleiste ist ein horizontaler oder vertikaler Streifen, der Schaltflächen enthält, die an Befehle gebunden sind. Je nach Implementierung kann eine Symbolleiste in der IDE neu positioniert, an jeder Seite des Standard IDE-Fensters angedockt oder so vor anderen Fenstern angezeigt werden.
Darüber hinaus können Benutzer mithilfe des Dialogfelds "Anpassen " Befehle zu einer Symbolleiste hinzufügen oder daraus entfernen. In der Regel können Symbolleisten in VSPackages vom Benutzer angepasst werden. Die IDE behandelt alle Anpassungen, und vsPackage antwortet auf Befehle. Das VSPackage muss nicht wissen, wo sich ein Befehl physisch befindet.
Weitere Informationen zu Menüs finden Sie unter Befehle, Menüs und Symbolleisten.
Erstellen einer Erweiterung mit einer Symbolleiste
Erstellen Sie ein VSIX-Projekt mit dem Namen IDEToolbar
. Fügen Sie eine Menübefehlselementvorlage namens ToolbarTestCommand hinzu. Informationen dazu finden Sie unter Erstellen einer Erweiterung mit einem Menübefehl.
Erstellen einer Symbolleiste für die IDE
Suchen Sie in ToolbarTestCommandPackage.vsct nach dem Abschnitt "Symbole". Fügen Sie im GuidSymbol-Element namens guidToolbarTestCommandPackageCmdSet Deklarationen für eine Symbolleiste und eine Symbolleistengruppe wie folgt hinzu.
<IDSymbol name="Toolbar" value="0x1000" /> <IDSymbol name="ToolbarGroup" value="0x1050" />
Erstellen Sie oben im Abschnitt "Befehle" einen Menüabschnitt. Fügen Sie dem Abschnitt "Menüs" ein Menüelement hinzu, um die Symbolleiste zu definieren.
<Menus> <Menu guid="guidToolbarTestCommandPackageCmdSet" id="Toolbar" type="Toolbar"> <CommandFlag>DefaultDocked</CommandFlag> <Strings> <ButtonText>Test Toolbar</ButtonText> <CommandName>Test Toolbar</CommandName> </Strings> </Menu> </Menus>
Symbolleisten können nicht wie Untermenüs geschachtelt werden. Daher müssen Sie keine übergeordnete Gruppe zuweisen. Außerdem müssen Sie keine Priorität festlegen, da der Benutzer Symbolleisten verschieben kann. In der Regel wird die anfängliche Platzierung einer Symbolleiste programmgesteuert definiert, aber nachfolgende Änderungen durch den Benutzer bleiben erhalten.
Definieren Sie im Abschnitt "Gruppen" nach dem vorhandenen Gruppeneintrag ein Gruppenelement, das die Befehle für die Symbolleiste enthält.
<Group guid="guidToolbarTestCommandPackageCmdSet" id="ToolbarGroup" priority="0x0000"> <Parent guid="guidToolbarTestCommandPackageCmdSet" id="Toolbar" /> </Group>
Legen Sie fest, dass die Schaltfläche auf der Symbolleiste angezeigt wird. Ersetzen Sie im Abschnitt "Schaltflächen" den übergeordneten Block in der Schaltfläche auf der Symbolleiste. Der resultierende Schaltflächenblock sollte wie folgt aussehen:
<Button guid="guidToolbarTestCommandPackageCmdSet" id="ToolbarTestCommandId" priority="0x0100" type="Button"> <Parent guid= "guidToolbarTestCommandPackageCmdSet" id="ToolbarGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <ButtonText>Invoke ToolbarTestCommand</ButtonText> </Strings> </Button>
Wenn eine Symbolleiste standardmäßig keine Befehle enthält, wird sie nicht angezeigt.
Erstellen Sie das Projekt, und starten Sie das Debugging. Die experimentelle Instanz sollte angezeigt werden.
Klicken Sie mit der rechten Maustaste auf die Visual Studio-Menüleiste, um die Liste der Symbolleisten abzurufen. Wählen Sie " Testsymbolleiste" aus.
Die Symbolleiste sollte nun rechts neben dem Symbol "In Dateien suchen" als Symbol angezeigt werden. Wenn Sie auf das Symbol klicken, sollte ein Meldungsfeld mit der Bezeichnung ToolbarTestCommandPackage angezeigt werden. Inside IDEToolbar.ToolbarTestCommand.MenuItemCallback().