Freigeben über


Erstellen. Vsct-Dateien

In diesem Dokument wird beschrieben, wie eine .vsct-Datei erstellt, um Menüelemente, Symbolleisten und andere Elemente der Benutzeroberfläche der integrierten Entwicklungsumgebung von Visual Studio (IDE) hinzuzufügen. Verwenden Sie diese Schritte aus, wenn Sie Benutzeroberflächenelemente einem Visual Studio-Paket (VSPackage) hinzufügen das noch keine .vsct-Datei verfügt.

Eine neue Projekte wird empfohlen, die Visual Studio-Paket verwenden, da sie eine Vorlage .vsct-Datei generiert, die, abhängig von der Auswahl bereits über die erforderlichen Elemente für einen Menübefehl, ein Toolfenster oder einen benutzerdefinierten Editor hat. Sie können diese .vsct-Datei VSPackages ändern, um die Anforderungen zu erfüllen. Weitere Informationen zum Erstellen einer .vsct-Datei finden Sie in den Beispielen in Exemplarische Vorgehensweisen für Befehle, Menüs und Symbolleistenändert.

Die Datei erstellen

Erstellen Sie eine .vsct-Datei in diese Phasen: Erstellen Sie die Struktur für Dateien und Ressourcen, deklarieren Sie die Benutzeroberflächenelemente, setzen Sie die Benutzeroberflächenelemente in die IDE ein, und fügen Sie jedes spezifische Verhalten hinzu.

Datei-Struktur

Die grundlegende Struktur einer .vsct-Datei ist ein CommandTable Stammelement, das ein Befehle-Element und ein Symbole-Element enthält.

So erstellen Sie die Dateistruktur

  1. Fügen Sie dem Projekt eine .vsct-Datei hinzu, indem Sie die Schritte in Gewusst wie: Create a. Vsct-Dateifolgen.

  2. Fügen Sie die erforderlichen Namespaces dem CommandTable-Element, wie im folgenden Beispiel gezeigt.

    <CommandTable xmlns="https://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
  3. Im CommandTable fügen Sie ein Element Commands-Element Host alle benutzerdefinierten Menüs, Symbolleisten, Befehlsgruppen und Befehle hinzufügen. Damit die Elemente der benutzerdefinierten Benutzeroberfläche laden können, muss das Commands-Element sein Package-Attribut auf den Namen des Pakets festgelegt ist.

    Nach dem Commands fügen Sie ein Element Symbols-Element hinzu, um die GUID für das Paket zu definieren und die Namen und die Befehls-IDs für die Benutzeroberflächenelemente.

Einbeziehen Visual Studio-Betriebsmittel

Verwenden Sie das Extern-Element, um die Dateien zugreifen, die Visual Studio-Befehle und Menüs definieren, die erforderlich sind, um die Benutzeroberflächenelemente in die IDE zu versetzen. Wenn Sie die Befehle verwenden, die außerhalb des Pakets definiert sind, verwenden Sie das Element UsedCommands von Visual Studio zu informieren.

So führen Sie Visual Studio-Betriebsmittel einschließen

  1. Klicken Sie am oberen Rand des Elements CommandTable Fügen Sie ein Extern-Element hinzu, sodass jede externe Datei verwiesen werden kann, und href legend Sie das Attribut auf den Namen der Datei fest. Sie können die folgenden Headerdateien anweisen, Visual Studio-Betriebsmittel zuzugreifen:

    • Stdidcmd.h, definiert ID für alle Befehle, die von Visual Studio verfügbar gemacht werden.

    • Vsshlids.h, enthält Befehls-IDs für Visual Studio-Menüs.

    • Msobtnid.h, definiert andere VSCT-Konstanten. Dies schließt Standardsymbol ID ein.

  2. Wenn das Paket alle Befehle aufgerufen werden, die von Visual Studio oder durch andere Pakete definiert sind, fügen Sie ein UsedCommandsElement nach dem Commands-Element hinzu. Füllen Sie das Element mit einem UsedCommand-Element für jeden Befehl ein, den Sie aufrufen, das nicht Teil des Pakets ist. Legen Sie die guid und id-Attribute der UsedCommand-Elemente in den GUID-Wert und IDs werten der Befehle aufzurufen. Weitere Informationen dazu, wie die GUID und ID von Visual Studio-Befehlen finden Sie unter GUID und ID von Visual Studio-Befehlengesucht werden soll. Um Befehle aus anderen Paketen aufzurufen, verwenden Sie die GUID und ID des Befehls wie in der .vsct-Datei für diese Pakete definiert.

Benutzeroberflächenelemente deklarieren

Deklarieren Sie alle neuen Symbols Benutzeroberflächenelemente im Abschnitt der .vsct-Datei.

So deklarieren Sie Benutzeroberflächenelemente

  1. Im Symbols-Element GuidSymbol drei fügen Sie Elemente hinzu. Jedes Element verfügt über ein GuidSymbolname-Attribut und ein value-Attribut. Legen Sie das Attribut name fest, dass er den Zweck des Elements wider. Das value-Attribut nimmt eine GUID. (Eine GUID, auf dem Extras Menü, klicken Sie auf GUID erstellengenerieren, und wählen Sie dann Registrierungsformat).

    Das erste Element stellt das Paket GuidSymbol dar und enthält in der Regel keine untergeordneten Elemente. Das zweite Element stellt GuidSymbol des Befehls Gruppe dar und wird alle Symbole enthalten, die die Menüs, Gruppen und Befehle definieren. Das dritte Element stellt das Bild GuidSymbol Datenspeicher dar und enthält Symbole für alle Symbole für die Befehle. Wenn Sie keine Befehle verfügen, die Symbole verwenden, können Sie das dritte Element GuidSymbol auslassen.

  2. Im GuidSymbol-Element, das den Befehl Gruppe darstellt, fügen Sie ein oder mehrere IDSymbol-Elemente hinzu. Jedes dieser Elemente stellen ein Menü, eine Symbolleiste, eine Gruppe oder einen Befehl dar, mit dem Sie die Benutzeroberfläche hinzufügen.

    Für jedes Element IDSymbolname Legen Sie das Attribut auf den Namen, den Sie verwenden, um das entsprechende Menü zuzugreifen, der Gruppe oder dem Befehl fest, und legen Sie dann das value-Element in eine Hexadezimalzahl fest, die ihre Befehls darstellt identifikation Zwei IDSymbol-Elemente, die dasselbe übergeordnete Element haben, können den gleichen Wert verfügen.

  3. Wenn einer der Benutzeroberfläche hinzufügen. B. Symbole, die Elemente benötigen ein IDSymbol-Element für jedes Symbol im GuidSymbol-Element, das das Bild Datenspeicher darstellt.

Benutzeroberflächenelemente in die IDE einfügen

Das Element, MenüsGruppen-Element und Schaltflächen-Element enthalten die Definitionen für alle Menüs, Gruppen und Befehle, die im Paket definierten. Legen Sie diese Menüs, Gruppen und Befehle in der IDE entweder ein, indem Sie ein Das übergeordnete Element-Element verwenden, das Teil der Definition des Benutzeroberflächenelements oder indem Sie ein CommandPlacement-Element verwenden, das an einer anderen Stelle definiert ist.

Jedes Menu, Groupund Button-Element verfügt über ein guid-Attribut und ein id-Attribut. Legen Sie immer das guid-Attribut fest, um den Namen des GuidSymbol-Elements übereinstimmt, das den Befehl Gruppe darstellt, und legen Sie das Attribut auf den Namen des idIDSymbol-Elements fest, das das Menü, die Gruppe oder den Befehl im Symbols-Abschnitt darstellt.

So definieren Sie Benutzeroberflächenelemente

  1. Beim Erstellen eines neuen Menüs oder Symbolleisten, Kontextmenüs Untermenüs definieren, fügen Sie ein Menus-Element dem Commands-Element hinzu. Dann sodass jedes Menü erstellt werden kann, fügen Sie ein Menüs-Element dem Menus-Element hinzu.

    Legen Sie die guid und id-Attribute des MenuElements fest, und legen Sie dann das type-Attribut auf die Art des Menüs fest. Sie können auch das priority-Attribut fest, um die relative Position des Menüs in der übergeordneten Gruppe festzulegen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Menüs, Untermenüs und Kontextmenüs und Gewusst wie: Erstellen von Symbolleisten in der IDE erstellt.

    Hinweis

    Daspriority-Attribut gilt nicht für Symbolleisten und Kontextmenüs zu.

  2. Alle Befehle in der Visual Studio-IDE müssen von Befehlsgruppen gehostet werden, die die direkt untergeordnetes Element von Menüs und Symbolleisten sind. Wenn Sie neue Menüs oder Symbolleisten in der IDE hinzufügen, müssen diese neue Befehlsgruppen enthalten. Fügen Sie können auch Befehlsgruppen vorhandenen Menüs und Symbolleisten Befehle hinzu, damit Sie visuelle gruppieren können.

    Wenn Sie neue Befehlsgruppen Groups hinzufügen, müssen Sie ein Element erstellen, und fügen Sie ihn ein Gruppe Befehlsgruppe für jede Element hinzu.

    Legen Sie die guid und idGroupAttribute jedes Elements fest, und legen Sie dann das priority-Attribut fest, um die relative Position der Gruppe im übergeordneten Menü herzustellen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von wiederverwendbaren Gruppen Schaltflächen.

  3. Wenn Sie neue Befehle in der IDE hinzufügen, fügen Sie ein Buttons-Element dem Commands-Element hinzu. Anschließend fügen Sie für jeden Befehl ein Schaltfläche-Element dem Buttons-Element hinzu.

    1. Legen Sie die guid und idButtonAttribute jedes Elements fest, und legen Sie dann das type-Attribut auf die Art der Schaltfläche fest. Sie können auch das priority-Attribut fest, um die relative Position des Befehls in der übergeordneten Gruppe festzulegen.

      Hinweis

      Verwenden des type="button" für die Auf- und Symbolleisten.

    2. Im Buttonfügen Sie ein Element Zeichenfolgen-Element hinzu, das ein ButtonText-Element und ein CommandName-Element enthält. Das ButtonText-Element stellt die Textbezeichnung für ein Menüelement oder die QuickInfo für eine Symbolleisten-Schaltfläche bereit. Das CommandName-Element gibt den Namen des Befehls, der im Befehl well zu verwenden.

    3. Wenn der Befehl ein Symbol vorhanden ist, erstellen Sie einen Symbol-Element im ButtonElement festgelegt, und ihre guid und id-Attribute an das Bitmap-Element für das Symbol.

      Hinweis

      Symbolleisten-Schaltflächen müssen Symbolen befindet.

    Weitere Informationen finden Sie unter Gewusst wie: Erstellen und behandeln Sie Befehle in VSPackages (C#).

  4. Wenn eine der Befehle benötigen Sie Symbole hinzufügen, Bitmap ein Element am Commands-Element. Anschließend fügen Sie für jedes Symbol Bitmap-Element dem Bitmaps ein Element hinzu. Dies ist, wo Sie den Speicherort der Bitmapressource anzugeben. Weitere Informationen finden Sie unter Gewusst wie: Fügen Sie Symbole in Symbolleisten Befehle hinzu.

Sie können auf die Parenting Struktur basieren, um die meisten Menüs, Gruppen und Befehle ordnungsgemäß zu platzieren. Eine sehr große Befehls, wenn ein Menü oder legt eine Gruppe oder ein Befehl an mehreren Stellen angezeigt werden müssen, wird empfohlen, die der angeben.

Klicken Sie auf Parenting verlassen, um Benutzeroberflächenelemente in der IDE einfügen

  • Eine typische Parenting erstellen Sie ein Parent-Element in jedem Menu, in Groupund Command-Element, das im Paket definiert ist.

    Das Ziel des Parent-Elements ist das Menü oder die Gruppe, die das Menü, die Gruppe oder den Befehl enthalten.

    1. Legen Sie das Attribut auf den Namen des guidGuidSymbol-Elements fest, das den Befehl Gruppe definiert. Wenn das Zielelement nicht Teil des Pakets ist, verwenden Sie die GUID für diesen Befehl festgelegt, wie in der entsprechenden .vsct-Datei definiert.

    2. Legen Sie das id-Attribut fest, um das Ziel id-Attribut des Menüs oder - Gruppe entsprechen. Eine Liste der Menüelemente und Gruppen, die von Visual Studio verfügbar gemacht werden, finden Sie unter GUID und ID von Visual Studio-Menüs oder GUID und ID von Visual Studio-Symbolleisten.

Wenn Sie viele in der IDE legen Benutzeroberflächenelemente verfügen, oder wenn Sie Elemente verfügen, die an mehreren Stellen angezeigt werden sollen, definieren Sie deren Platzierungen Element im CommandPlacements , wie in den folgenden Schritten veranschaulicht.

So können Sie Benutzeroberflächenelemente der Befehle in der IDE einfügen

  1. Nach dem Commands fügen Sie ein Element CommandPlacements-Element hinzu.

  2. Im CommandPlacements fügen Sie ein Element CommandPlacement-Element hinzu, sodass jedes Menü Gruppe oder Befehl gesetzt werden.

    Setzt alle CommandPlacement-Elements oder ParentElements bzw. eine Gruppe oder ein Menü in einem Befehl IDE-Speicherort. Ein Benutzeroberflächenelement kann nur ein übergeordnetes Element haben, kann jedoch mehrere Befehls platzierungen haben. Um ein Element der Benutzeroberfläche an mehreren Stellen eingefügt werden soll, fügen Sie ein CommandPlacement-Element für jeden Position hinzu.

  3. Legen Sie die guid und id-Attribute jedes Elements in den CommandPlacement Gruppe oder ein Menü Projekt bei fest, so wie Sie für ein Element Parent . Sie können das priority-Attribut auch festlegen, um die relative Position des Benutzeroberflächenelements herzustellen.

Sie können die Platzierung von Erziehnungs- Befehls und der kombinieren. Für jedoch sehr große Befehls legt, wird empfohlen, ONLY-Befehl Positionierung verwenden.

Spezialisiertes Verhalten hinzufügen

Sie können CommandFlag-Elemente verwenden, um das Verhalten von Menüs und der Befehle zu ändern, z. B. ihre Darstellung und Sichtbarkeit zu ändern. Sie können auch beeinflussen, wenn ein Befehl sichtbar ist, indem er VisibilityConstraintsverwendet oder Tastenkombinationen hinzufügen, indem Sie Tastaturzuordnungenverwenden. Bestimmte Arten von Menüs und Befehle verfügen bereits über das integrierte Verhalten spezialisiert.

So fügen Sie ein spezielles Verhalten hinzufügen

  1. Um ein Element der Benutzeroberfläche sichtbar zu machen nur in bestimmten Benutzeroberfläche-Kontexten z. B. wenn eine Projektmappe geladen wird, verwenden Sie Sichtbarkeits Einschränkungen.

    1. Nach dem Commands fügen Sie ein Element VisibilityConstraints-Element hinzu.

    2. Für jedes Benutzeroberflächenelement einschränkt, fügen Sie ein VisibilityItem-Element hinzu.

    3. Für jedes Element VisibilityItem Legen Sie die guid und id-Attribute auf das Menü, der Gruppe oder dem Befehl fest, und legen Sie dann das context-Attribut auf den gewünschten Benutzeroberfläche-Kontext fest, wie in der UIContextGuids80-Klasse definiert. Weitere Informationen finden Sie unter VisibilityItem-Element.

  2. Um die Sichtbarkeit und Verfügbarkeit eines Benutzeroberflächenelements im Code festzulegen, verwenden Sie eine oder mehrere der folgenden Befehls Flags:

    • DefaultDisabled

    • DefaultInvisible

    • DynamicItemStart

    • DynamicVisibility

    • NoShowOnMenuController

    • NotInTBList

    Weitere Informationen finden Sie unter Command Flag-Element.

  3. Um zu ändern, z. B. ein Element angezeigt wird, oder ändern Sie die Darstellung dynamisch, verwenden Sie eine oder mehrere der folgenden Befehls Flags:

    • AlwaysCreate

    • CommandWellOnly

    • DefaultDocked

    • DontCache

    • DynamicItemStart

    • FixMenuController

    • IconAndText

    • Pict

    • StretchHorizontally

    • TextMenuUseButton

    • TextChanges

    • TextOnly

    Weitere Informationen finden Sie unter Command Flag-Element.

  4. Um zu ändern, wie ein Element antwortet wenn Befehle empfangen, verwenden Sie eine oder mehrere der folgenden Befehls Flags:

    • AllowParams

    • CaseSensitive

    • CommandWellOnly

    • FilterKeys

    • NoAutoComplete

    • NoButtonCustomize

    • NoKeyCustomize

    • NoToolbarClose

    • PostExec

    • RouteToDocs

    • TextIsAnchorCommand

    Weitere Informationen finden Sie unter Command Flag-Element.

  5. Um eine Zugriffstaste des Menüs abhängigen einem Menü oder auf ein Element in einem Menü anzufügen, fügen Sie ein kaufmännisches Und-Zeichen ('&') in ButtonText-Element für das Menü oder das Menüelement hinzu. Das Zeichen, das dem kaufmännischen Und-Zeichen folgt, ist die aktuelle Tastenkombination Elemente, wenn das Menü geöffnet ist.

  6. So erstellen Sie eine Menü-unabhängige Tastenkombination für einen Befehl anfügen, verwenden Sie Tastaturzuordnungen. Weitere Informationen finden Sie unter KeyBinding-Element.

  7. Um Menütext zu suchen, verwenden Sie das LocCanonicalName-Element. Weitere Informationen finden Sie unter Strings-Element.

Typ gehören eines Menüs und der Schaltfläche spezifische Verhalten. Die folgende Tabelle beschreibt eine spezielle Menü- und Typen. Für andere Typen finden Sie in der types-Attribut in Beschreibungen der Menu-Element, in Button-Elementund Combo-Element.

  • Kombinationsfeld
    Ein Kombinationsfeld ist eine Dropdownliste, die auf einer Symbolleiste verwendet werden kann. Um Kombinationsfelder der Benutzeroberfläche hinzuzufügen, erstellen Sie ein Kombinationsfelder-Element im Commands-Element. Fügen Sie dann dem Combos ein Element für jedes Element hinzu Combo Kombinationsfelds hinzugefügt wird. Combo-Elemente verfügen über die gleichen Attribute und untergeordneten Elemente, die Button-Elemente sowie DefaultWidth und idCommandList-Attribute verfügen. Das DefaultWidth-Attribut legt die Breite in Pixel fest, und das idCommandList-Attribut zeigt auf eine Befehls-ID, die verwendet wird, um das Kombinationsfeld gefüllt werden soll. Weitere Informationen finden Sie in der Dokumentation zur Combo-Element.

  • MenuController
    Ein Menü controller ist eine Schaltfläche, die einen Pfeil neben diesem vorhanden ist. Durch Klicken auf den Pfeil wird eine Liste. Um einen Menü controller der Benutzeroberfläche hinzuzufügen, erstellen Sie ein Menu-Element, und legen Sie type-Attribut auf MenuController oder MenuControllerLatched, abhängig vom Verhalten fest. Um einen Menü controller aufzufüllen, legen Sie ihn als das übergeordnete Element eines Elements Group fest. Der Menü controller zeigt alle untergeordneten Elemente dieser Gruppe in einer Dropdownliste angezeigt.

Siehe auch

Konzepte

VSCT-XML-Schemaverweis

Weitere Ressourcen

Allgemeine Aufgaben mit Befehlen, Menüs und Symbolleisten

(Visual Studio-Befehls-Tabelle. Dateien Vsct)