Özel kullanıcı arabirimi (kaynak denetimi VSPackage)
VSPackage, menü öğelerini ve varsayılan durumlarını Visual Studio komut tablosu (.vsct) dosyası aracılığıyla bildirir. Visual Studio tümleşik geliştirme ortamı (IDE), VSPackage yüklenene kadar menü öğelerini varsayılan durumlarında görüntüler. Daha sonra, QueryStatus menü öğelerini etkinleştirmek veya devre dışı bırakmak için yöntemi çağrılır.
VSPackage bir kayıt defteri anahtarı ayarlayabilir, böylece VSPackage bir komut kullanıcı arabirimi (UI) bağlamı bağlı olarak otomatik olarak yüklenebilir, ancak genellikle bir kaynak denetimi VSPackage yalnızca belirli bir kullanıcı arabirimi bağlamı yerine isteğe bağlı olarak yüklenmelidir. AutoLoadPackages kayıt defteri anahtarı hakkında daha fazla bilgi için bkz. VSPackage'ları yönetme.
VSPackage Kullanıcı Arabirimi
Bir kaynak denetim paketi VSPackage olarak uygulanır ve Visual Studio'dan herhangi bir kullanıcı arabirimi kullanmaz. Her kaynak denetimi VSPackage, vsPackage kaynak denetimine özgü seçenekleri ayarlamak için menü öğeleri, menü grupları, araç pencereleri, araç çubukları ve gerekli kullanıcı arabirimi gibi kendi kullanıcı arabirimi öğelerini belirtmelidir. Bu kullanıcı arabirimi öğeleri statik veya dinamik olarak etkinleştirilebilir. Statik ui öğeleri bir .vsct dosyasında tanımlanır ve VSPackage'ın yüklenip yüklenmediği görüntülenir. Dinamik ui öğeleri, gibi vsContextNoSolutionbelirli bir komut kullanıcı arabirimi bağlamı veya yöntemine QueryStatus yapılan çağrının sonucu olarak görünebilir. Dinamik kullanıcı arabirimi öğelerinin görünürlüğü, VSPackage'ların gecikmeli yüklenmesi stratejisiyle uyumlu olur.
Kaynak denetimi VSPackage'larında kullanıcı arabirimi kısıtlamaları
Kaynak denetimi VSPackage yüklendikten sonra IDE'den kaldırılamadığından, VSPackage'ın etkin olmayan bir duruma girebilmesi gerekir. BIR VSPackage artık etkin olmadığını belirten bir bildirim aldığında, VSPackage kullanıcı arabirimini devre dışı bırakır ve dış IDE etkileşimlerini yoksayar. VSPackage'ın yöntemini uygulaması QueryStatus , VSPackage etkin olmadığında komutları gizlemelidir.
Her kaynak denetimi VSPackage arabirimini IVsSccProvider
uygulamalıdır. arabiriminde SetActive ve SetInactiveolmak üzere iki yöntem VSPackage tarafından uygulanmalıdır.
KAYNAK denetimi VSPackage, , IVsTrackProjectDocumentsEvents2vb. tarafından IVsSolutionEvents3uygulanan çeşitli IDE olaylarına abone olmuş olabilir. Ayrıca VSPackage, gibi IVsSolutionPersistencekayıt defteri etkin geri çağırma arabirimleri uygulamış olabilir. Devre dışı olduğunda bu arabirimlerin tümü yoksayılmalıdır.
Aşağıdaki listede, bir kaynak denetimi VSPackage'ın etkin durumundan etkilenen arabirimler gösterilmektedir:
Proje belgeleri olaylarını izleme.
Çözüm olayları.
Çözüm kalıcılık arabirimleri. Etkin olmadığında paketler .sln ve .suo dosyalarına yazmamalıdır.
Özellik genişleticileri.
Kaynak denetimi VSPackage etkin olmadığında gerekli IVsQueryEditQuerySave2 ve IVsSccManager2ve ve ayrıca kaynak denetimiyle ilişkili isteğe bağlı arabirimler çağrılmaz.
Visual Studio IDE başlatıldığında, Visual Studio komut kullanıcı arabirimi bağlamını geçerli varsayılan kaynak denetimi VSPackage kimliğinin kimliğine ayarlar. Bu, etkin kaynak denetimi VSPackage'ın statik kullanıcı arabiriminin VSPackage'ı gerçekten yüklemeden IDE'de görünmesine neden olur. VSPackage'a herhangi bir çağrı yapmadan önce Visual Studio aracılığıyla IVsRegisterScciProvider VSPackage'a kaydolması için Visual Studio duraklatılır.
Aşağıdaki tabloda, Visual Studio IDE'nin farklı kullanıcı arabirimi öğelerini nasıl gizlediği hakkında belirli ayrıntılar açıklanmaktadır.
Kullanıcı arabirimi öğesi | Açıklama |
---|---|
Menüler ve araç çubukları | Kaynak denetim paketi, .vsct dosyasının VisibilityConstraints bölümünde ilk menüyü ve araç çubuğu görünürlük durumlarını kaynak denetim paketi kimliğine ayarlamalıdır. Bu, Visual Studio IDE'nin VSPackage'ı yüklemeden ve yönteminin bir uygulamasını çağırmadan menü öğelerinin durumunu uygun şekilde ayarlamasını QueryStatus sağlar. |
Araç pencereleri | VsPackage kaynak denetimi, etkin olmadığında sahip olduğu tüm araç pencerelerini gizler. |
Kaynak denetimi VSPackage'a özgü seçenekler sayfaları | HKLM\SOFTWARE\Microsoft\VisualStudio\X.Y\ToolsOptionsPages\VisibilityCmdUIContexts kayıt defteri anahtarı, VSPackage'ın seçenek sayfalarının görüntülenmesini gerektirdiği bağlamları ayarlamasına olanak tanır. Bu anahtar altındaki bir kayıt defteri girdisi, kaynak denetim hizmetinin hizmet kimliği (SID) kullanılarak ve 1 DWORD değeri atanarak oluşturulmalıdır. VsPackage kaynak denetiminin kayıtlı olduğu bir bağlamda ui olayı gerçekleştiğinde, etkinse VSPackage çağrılır. |