Gewusst wie: Erstellen von Symbolleisten für Toolfenster erstellen
Sie können eine Symbolleiste ein Toolfenster hinzufügen, indem Sie ein Menü des Typs ToolWindowToolbar in einer Datei .vsct VSPackages definieren und dann das Paket, um es anzuzeigen.
Symbolleisten in Toolfenstern unterscheiden sich von Symbolleisten in der allgemeinen integrierten Entwicklungsumgebung (IDE) auf folgende Weise:
Eine IDE-Symbolleiste kann erstellt werden, indem ein Menü des Typs Toolbar in der .vsct-Datei definiert. Eine Toolfenster im Ziel muss Symbolleiste im Fenster Tool programmgesteuert erstellt werden.
Ein Benutzer kann eine IDE-Symbolleiste konfigurieren, indem Sie das Dialogfeld Anpassen verwendet. Eine Symbolleiste des Fensters Tool kann nicht auf diese Weise konfiguriert sind.
Eine Tool-Fenster-Symbolleiste erstellen
Eine Toolfenster wird zuerst How Menu-Element Symbolleiste in der .vsct-Datei definiert.
In den folgenden Prozeduren wird davon ausgegangen, dass Sie ein VSPackage-Projekt verfügen, in dem ein Toolfenster in der .vsct-Datei definiert ist. Wenn Sie ein VSPackage im Paket Assistenten erstellen, wählen Sie Toolfenster aus, um eine .vsct-Datei dem Paket hinzuzufügen und Projekt B. ein Toolfenster zu definieren.
So erstellen Sie eine Symbolleiste Toolfenster
Öffnen Sie die .vsct-Datei im Editor.
Suchen Sie den Abschnitt, der von Symbols-Elementgebildet wird.
Suchen Sie GuidSymbol-Element , das die Menüs, Gruppen und Befehle enthält. Standardmäßig wird es Guid <ProjectName> CmdSetbenannt.
Fügen Sie IDSymbol-Element für die Symbolleiste und eine Gruppe hinzu, damit die Befehle wie im folgenden Beispiel gezeigt.
<IDSymbol name="TWToolbar" value="0x1000" /> <IDSymbol name="TWToolbarGroup" value="0x1050" />
Die name-Attribute der GuidSymbol und IDSymbol-Elemente in einer definierten Symbolleiste in einem Befehl oder einer Gruppe stellen eine GUID: ID-Paar, das diese Symbolleiste, Befehls- oder Gruppe darstellt. GUID stellt ein Befehl dar, der für ein VSPackage definiert ist. Mehrere Befehls legt werden im Paket definiert werden. Die GUID: ID-Paare, die verwendet wird, um die einzelnen Elemente zu identifizieren, müssen eindeutig sein.
Derzeit über dem Abschnitt, der von Groups-Elementformatiert ist, erstellen Sie einen Abschnitt, indem Sie Menus-Elementverwenden.
Definieren Sie die Symbolleiste als Menu-Element im Menus-Abschnitt wie folgt:
Legen Sie die guid und id-Attribute in den GUID fest: ID der neuen Symbolleiste.
Legen Sie das Attribut auf ToolWindowToolbartype fest.
Im Menu-Element verwenden Sie Strings-Element , um einen Abschnitt zu erstellen, der ButtonText-Element und CommandName-Elemententhält. Das ButtonText-Element wird verwendet, um den Namen der Symbolleiste festlegen, wie sie in der IDE angezeigt wird. Das CommandName-Element wird verwendet, um den Befehlsnamen festzulegen, der im Fenster Befehl eingegeben werden kann, um die Symbolleiste zuzugreifen.
Im folgenden Beispiel wird eine Symbolleiste Toolfenster.
<Menu guid="guidTWToolbarCmdSet" id="TWToolbar" type="ToolWindowToolbar"> <CommandFlag>DefaultDocked</CommandFlag> <Strings> <ButtonText>Test Toolbar</ButtonText> <CommandName>Test Toolbar</CommandName> </Strings> </Menu>
Im Groups-Abschnitt erstellen Sie Group-Element , um die Befehle enthalten soll, dass Sie auf der Symbolleiste angezeigt werden sollen.
Legen Sie die Priorität der Gruppe fest, um zu bestimmen, wo sie auf der Symbolleiste angezeigt wird.
Eine Gruppe, die eine Einstellung der Basispriorität verfügt, wird links neben der Symbolleiste (oder der Anfang, je nachdem, wie die Symbolleiste sind).
Legen Sie das übergeordnete Element der Gruppe der GUID fest: ID der Symbolleiste.
Die folgende Gruppe wird auf der Symbolleiste, die im vorherigen Beispiel definiert wurde.
<Group guid="guidTWToolbarCmdSet" id="TWToolbarGroup" priority="0x0000"> <Parent guid="guidTWToolbarCmdSet" id="TWToolbar" /> </Group>
Die Symbolleiste im Toolfenster anzeigen
Verwenden Sie das verwaltete Paketframework (MPF) in das Programm das Paket, um die Symbolleiste im Toolfenster anzuzeigen.
Die ToolBar-Eigenschaft der ToolWindowPane-Klasse akzeptiert eine CommandID-Instanz als Wert. Die CommandID-Instanz akzeptiert und Guid (String) und eine (int) ID. Durch das Festlegen dieser mit dem GUID: ID-Paar der Symbolleiste die Symbolleiste wird dem Toolfenster gebunden. In der Regel ist dies im Konstruktor der Klasse, die von der ToolWindowPane-Klasse abgeleitet ist.
Ein verwalteten Code im Fenster Tool, das erstellt wird, indem das MPF kann nur eine einzige Symbolleiste haben.
Um die Symbolleiste anzeigen im Toolfenster
Wenn Sie ein VSPackage erstellen, indem Sie den Assistent Paket verwenden, werden automatisch in die GUID Menge der Befehl GuidList-Klasse hinzugefügt, die in der Guids.cs-Datei definiert ist. Erstellte Menü und Befehls-IDs wird der PkgCmdIDList-Klasse hinzugefügt, die in PkgCmdID.cs definiert ist. Dann können GUID-Wert und ID-Werte in einer lesbaren Form von diesen beiden Klassen zugegriffen werden.
Öffnen Sie PkgCmdID.cs.
Fügen Sie einen Eintrag für die Toolfenster und die Symbolleiste für alle Befehle hinzu, die Sie auf der Symbolleiste angezeigt werden sollen. Der Wert jedes Eintrags muss das value-Attribut des zugeordneten IDSymbol-Elements entsprechen.
Das folgende Beispiel erstellt einen Eintrag für die Symbolleiste, die älter festgelegt wurde.
public const int TWToolbar = 0x1000;
Öffnen Sie MyToolWindow.cs.
Im Konstruktor legen Sie die ToolBar-Eigenschaft der MyToolWindow-Klasse auf eine neue Instanz CommandID und GUID mit der ID der Symbolleiste als Parameter, wie im folgenden Beispiel gezeigt.
this.ToolBar = new CommandID( GuidList.guidTWToolbarCmdSet, PkgCmdIDList.TWToolbar);
Wenn die Klassen und GuidList PkgCmdIDList nicht definiert sind, können Sie den String-Wert der GUID und ID der Wert Int-Version verwenden.
Siehe auch
Aufgaben
Gewusst wie: Erstellen von wiederverwendbaren Gruppen Schaltflächen
Exemplarische Vorgehensweise: Eine Symbolleiste auf ein Toolfenster hinzu