Udostępnij za pośrednictwem


Niestandardowy interfejs użytkownika (pakiet VSPackage kontroli źródła)

Pakiet VSPackage deklaruje elementy menu i ich stany domyślne za pośrednictwem pliku tabeli poleceń programu Visual Studio (vsct). Zintegrowane środowisko programistyczne (IDE) programu Visual Studio wyświetla elementy menu w ich stanach domyślnych do momentu załadowania pakietu VSPackage. Następnie metoda jest wywoływana w celu włączenia QueryStatus lub wyłączenia elementów menu.

Pakiet VSPackage może ustawić klucz rejestru, aby pakiet VSPackage mógł zostać automatycznie załadowany w zależności od kontekstu interfejsu użytkownika polecenia, chociaż zazwyczaj pakiet VSPackage kontroli źródła powinien ładować się na żądanie, a nie po prostu przełączać się do określonego kontekstu interfejsu użytkownika. Aby uzyskać więcej informacji na temat klucza rejestru AutoLoadPackages, zobacz Zarządzanie pakietami VSPackage.

Interfejs użytkownika pakietu VSPackage

Pakiet kontroli źródła jest implementowany jako pakiet VSPackage i nie używa żadnego interfejsu użytkownika z programu Visual Studio. Każdy pakiet VSPackage kontroli źródła musi określać własne elementy interfejsu użytkownika, takie jak elementy menu, grupy menu, okna narzędzi, paski narzędzi i dowolny wymagany interfejs użytkownika do ustawiania opcji specyficznych dla pakietu VSPackage kontroli źródła. Te elementy interfejsu użytkownika można włączać statycznie lub dynamicznie. Statyczne elementy interfejsu użytkownika są definiowane w pliku vsct i wyświetlane niezależnie od tego, czy pakiet VSPackage jest ładowany, czy nie. Dynamiczne elementy interfejsu użytkownika mogą być widoczne w zależności od określonego kontekstu interfejsu użytkownika polecenia, takiego jak vsContextNoSolution, lub w wyniku wywołania QueryStatus metody. Widoczność dynamicznych elementów interfejsu użytkownika jest zgodna ze strategią opóźnionego ładowania pakietów VSPackage.

Ograniczenia interfejsu użytkownika dotyczące pakietów VSPackage kontroli źródła

Ponieważ nie można usunąć pakietu VSPackage kontroli źródła ze środowiska IDE po jego załadowaniu, pakiet VSPackage musi mieć możliwość wprowadzenia stanu nieaktywnego. Gdy pakiet VSPackage odbiera powiadomienie, że nie jest już aktywny, pakiet VSPackage wyłącza interfejs użytkownika i ignoruje wszelkie zewnętrzne interakcje ze środowiskiem IDE. Implementacja QueryStatus metody vsPackage powinna ukrywać polecenia, gdy pakiet VSPackage nie jest aktywny.

Każdy pakiet VSPackage kontroli źródła musi zaimplementować IVsSccProvider interfejs. Dwie metody w interfejsie SetActive i SetInactive, muszą być implementowane przez pakiet VSPackage.

Pakiet VSPackage kontroli źródła może subskrybować różne zdarzenia IDE, które są implementowane przez IVsSolutionEvents3element , IVsTrackProjectDocumentsEvents2i tak dalej. Ponadto pakiet VSPackage może mieć zaimplementowane interfejsy wywołania zwrotnego z obsługą rejestru, takie jak IVsSolutionPersistence. Wszystkie te interfejsy muszą być ignorowane, gdy nieaktywne.

Na poniższej liście przedstawiono interfejsy, których dotyczy aktywny stan pakietu VSPackage kontroli źródła:

  • Śledzenie zdarzeń dokumentów projektu.

  • Zdarzenia rozwiązania.

  • Interfejsy trwałości rozwiązania. Gdy nieaktywne pakiety nie powinny zapisywać w plikach sln i suo .

  • Rozszerzenia właściwości.

    Wymagane IVsQueryEditQuerySave2 i IVsSccManager2, a także wszelkie opcjonalne interfejsy skojarzone z kontrolą źródła, nie są wywoływane, gdy pakiet VSPackage kontroli źródła jest nieaktywny.

    Po uruchomieniu środowiska IDE programu Visual Studio program Visual Studio ustawia kontekst interfejsu użytkownika polecenia na identyfikator bieżącej domyślnej kontroli źródła VSPackage ID. Powoduje to, że statyczny interfejs użytkownika aktywnego pakietu VSPackage kontroli źródła jest wyświetlany w środowisku IDE bez faktycznego ładowania pakietu VSPackage. Program Visual Studio wstrzymuje program VSPackage, aby zarejestrować się w programie Visual Studio za pomocą IVsRegisterScciProvider polecenia przed wykonaniem jakichkolwiek wywołań pakietu VSPackage.

    W poniższej tabeli opisano szczegółowe informacje o tym, jak środowisko IDE programu Visual Studio ukrywa różne elementy interfejsu użytkownika.

Element interfejsu użytkownika opis
Menu i paski narzędzi Pakiet kontroli źródła musi ustawić początkowe menu i stany widoczności paska narzędzi na identyfikator pakietu kontroli źródła w sekcji Ograniczenia widoczności pliku vsct. Dzięki temu środowisko IDE programu Visual Studio może odpowiednio ustawić stan elementów menu bez ładowania pakietu VSPackage i wywoływania implementacji QueryStatus metody .
Okna narzędzi Pakiet VSPackage kontroli źródła ukrywa wszystkie okna narzędzi, których jest właścicielem, gdy jest on nieaktywny.
Strony opcji specyficznych dla pakietu VSPackage kontroli źródła Klucz rejestru HKLM\SOFTWARE\Microsoft\VisualStudio\X.Y\ToolsOptionsPages\VisibilityCmdUIContexts umożliwia pakietowi VSPackage ustawienie kontekstów, w których wymaga wyświetlania stron opcji. Wpis rejestru w ramach tego klucza musi zostać utworzony przy użyciu identyfikatora usługi (SID) usługi kontroli źródła i przypisania jej wartości DWORD 1. Za każdym razem, gdy zdarzenie interfejsu użytkownika występuje w kontekście kontrolki źródła vsPackage jest zarejestrowane, pakiet VSPackage będzie wywoływany, jeśli jest aktywny.