Freigeben über


Verfügbarkeit von Befehlen

Der Visual Studio-Kontext bestimmt, welche Befehle verfügbar sind. Der Kontext kann sich je nach aktuellem Projekt, dem aktuellen Editor, den geladenen VSPackages und anderen Aspekten der integrierten Entwicklungsumgebung (IDE) ändern.

Befehlskontexte

Die folgenden Befehlskontexte sind am häufigsten:

  • IDE: Befehle, die von der IDE bereitgestellt werden, sind immer verfügbar.

  • VSPackage: VSPackages können definieren, wann Befehle angezeigt oder ausgeblendet werden sollen.

  • Projekt: Project-Befehle werden nur für das aktuell ausgewählte Projekt angezeigt.

  • Editor: Es kann jeweils nur ein Editor aktiv sein. Befehle aus dem aktiven Editor sind verfügbar. Ein Editor arbeitet eng mit einem Sprachdienst zusammen. Der Sprachdienst muss seine Befehle im Kontext des zugehörigen Editors verarbeiten.

  • Dateityp: Ein Editor kann mehrere Dateitypen laden. Die verfügbaren Befehle können je nach Dateityp geändert werden.

  • Aktives Fenster: Im letzten aktiven Dokumentfenster wird der Benutzeroberflächenkontext für Tastenbindungen festgelegt. Ein Toolfenster mit einer Schlüsselbindungstabelle, die dem internen Webbrowser ähnelt, kann jedoch auch den Ui-Kontext festlegen. Bei Dokumentfenstern mit mehreren Registerkarten wie dem HTML-Editor verfügt jede Registerkarte über eine andere Befehlskontext-GUID. Nachdem ein Toolfenster registriert wurde, ist es immer im Menü "Ansicht" verfügbar.

  • Ui-Kontext: Ui-Kontexte werden durch die Werte der VSConstants.UICONTEXT Klasse identifiziert, SolutionBuilding_guid z. B. wenn die Lösung erstellt wird oder Debugging_guid wenn der Debugger aktiv ist. Mehrere UI-Kontexte können gleichzeitig aktiv sein.

Definieren benutzerdefinierter Kontext-GUIDs

Wenn eine entsprechende Befehlskontext-GUID noch nicht definiert ist, können Sie eine in Ihrem VSPackage definieren und dann so programmieren, dass sie aktiv oder inaktiv ist, wie erforderlich, um die Sichtbarkeit Ihrer Befehle zu steuern:

  1. Registrieren Sie Kontext-GUIDs, indem Sie die GetCmdUIContextCookie Methode aufrufen.

  2. Rufen Sie den Status einer Kontext-GUID ab, indem Sie die IsCmdUIContextActive Methode aufrufen.

  3. Aktivieren und deaktivieren Sie Kontext-GUIDs, indem Sie die SetCmdUIContext Methode aufrufen.

Achtung

Stellen Sie sicher, dass sich Ihre VSPackage nicht auf vorhandene Kontext-GUIDs auswirkt, da andere VSPackages davon abhängig sein können.