Benutzerdefinierte Benutzeroberfläche (Quellcodeverwaltung VSPackage)
VSPackage deklariert seine Menüelemente und ihre Standardannahhmen von der Datei Studio-Befehls-Tabelle (Visual .vsct). Die Visual Studio integrierte Entwicklungsumgebung (IDE) werden die Menüelemente im Standardannahhmen an, bis VSPackages geladen wurde. Anschließend wird die QueryStatus-Methode aufgerufen, um die Menüelemente zu aktivieren oder zu deaktivieren.
VSPackage kann einen Registrierungsschlüssel festlegen, sodass ein VSPackage Befehl je nach einem Kontext der Benutzeroberfläche (UI) automatisch geladen werden, obwohl in der Regel eine Quellcodeverwaltung VSPackage bei Bedarf laden soll, statt an einen Kontext der bestimmten Benutzeroberfläche nur zu wechseln. Weitere Informationen zu den AutoLoadPackages-Registrierungsschlüssel finden Sie unter Laden von VSPackages.
VSPackage Benutzeroberfläche
Ein Paket wird als Quellcodeverwaltung ein VSPackage implementieren und keine Benutzeroberfläche von Visual Studioverwendet. Jede Quellcodeverwaltung VSPackage muss seine eigene Benutzeroberflächenelemente wie Menü Menüelemente Gruppen, Toolfenster, Symbolleisten und jedes erforderliche Benutzeroberfläche zum Festlegen von Optionen angeben, die der Quellcodeverwaltung VSPackage spezifisch sind. Diese Benutzeroberflächenelemente können statisch oder dynamisch aktiviert sind. Statische Benutzeroberflächenelemente werden in einer .vsct-Datei definiert und werden angezeigt, ob ein VSPackage oder nicht geladen wird. Dynamische Benutzeroberflächenelemente sind davon abhängig von einem bestimmten Kontext Befehlsbenutzeroberflächen, z. B. vsContextNoSolutionoder als Ergebnis eines Aufrufs der QueryStatus-Methode sichtbar. Die Sichtbarkeit von dynamischen Benutzeroberflächenelementen stimmt mit der Strategie für das verzögerte Laden von VSPackages.
VSPackages auf Quellcodeverwaltung Benutzeroberfläche-Einschränkungen
Da die Quellcodeverwaltung ein VSPackage über die IDE nicht entfernt werden können, nachdem sie geladen wurde, muss ein VSPackage in der Lage sein, einen inaktiven Zustand übergegangen ist. Wenn ein VSPackage Benachrichtigung erhält, dass sie nicht mehr aktiv ist, VSPackages deaktiviert sein Benutzeroberfläche und ignoriert jede externe IDE-Interaktion. Die VSPackages Implementierung der QueryStatus-Methode sollte Befehle ausgeblendet, wenn ein VSPackage nicht aktiv ist.
Jede Quellcodeverwaltung VSPackage muss die IVsSccProvider-Schnittstelle implementieren. Zwei Methoden der Schnittstelle, SetActive und SetInactive, müssen von VSPackages implementiert werden.
Die Quellcodeverwaltung VSPackage abonniert möglicherweise zu unterschiedlichen IDE-Ereignissen, die von IVsSolutionEvents3, IVsTrackProjectDocumentsEvents2implementiert werden, usw. Außerdem kann ein VSPackage Rückruf Registrierung-aktivierte Schnittstellen implementiert, z. B. IVsSolutionPersistence. Diese müssen alle ignoriert werden, wenn inaktiv.
In der folgenden Liste sind die Schnittstellen aufgeführt, die in den aktiven Zustand einer Quellcodeverwaltung VSPackage betroffen sind:
Titel-Projektdokumentations Events.
Projektmappen Events.
Dauerhaftigkeit von Projektmappen Schnittstellen. Wenn keine Pakete sollten inaktiv, .suo-Dateien SLN- und zu schreiben.
Eigenschaftextender.
Erforderliche IVsQueryEditQuerySave2 und IVsSccManager2und auch keine optionalen Schnittstellen, die Quellcodeverwaltung verknüpft sind, werden nicht aufgerufen, wenn die Quellcodeverwaltung VSPackages deaktiviert ist.
Wenn die IDE Visual Studio beginnt, Visual Studio den Kontext Befehlsbenutzeroberflächen auf die ID der aktuellen Standardeinstellung quellcodeverwaltung VSPackages festlegt. Dies bewirkt, dass das statische Benutzeroberfläche der aktiven Quellcodeverwaltung VSPackage, in der IDE angezeigt werden, ohne tatsächlich VSPackages geladen werden soll. Visual Studio Pausen, damit Visual Studio mit einem VSPackage über IVsRegisterScciProvider registriert, bevor ein VSPackage alle Aufrufe vornimmt.
In der folgenden Tabelle werden bestimmte Details darüber, wie sich das Visual Studio IDE andere Benutzeroberflächenelemente ausblendet.
Benutzeroberflächenelement |
Beschreibung |
---|---|
Menüs und Symbolleisten |
Das Paket muss die ursprünglichen Quellcodeverwaltung Menü- und Symbolleisten sichtbarkeits Bedingungen zur Quellcodeverwaltung paket-id im VisibilityConstraints-Abschnitt der .vsct-Datei festlegen. Dies ermöglicht das Visual Studio IDE, um den Zustand der Menüelemente entsprechend festzulegen, ohne VSPackages geladen und eine Implementierung der QueryStatus-Methode aufzurufen. |
Toolfenster |
Die Quellcodeverwaltung VSPackage blendet alle Toolfenster aus, die dieser besitzt, wenn sie deaktiviert. |
Quellcodeverwaltung VSPackage-Besondere Optionsseiten |
Der Registrierungsschlüssel HKLM \ SOFTWARE \ Microsoft \ VisualStudio \ X.Y \ ToolsOptionsPages \ VisibilityCmdUIContexts VSPackage können die Kontexte festlegen, in denen es erforderlich ist, seine Optionsseiten angezeigt werden soll. Ein Registrierungseintrag unter diesem Schlüssel erstellt werden kann, muss der Dienst ID (SID) des verwendeten diensts Quellcodeverwaltung und ihr einen DWORD-Wert 1. zuwies. Sobald ein Benutzeroberfläche-Ereignis in einem Kontext auftritt, wird die Quellcodeverwaltung bezeichnet wird, mit einem VSPackage VSPackages registriert, wenn es aktiv ist. |