Yeniden kullanılabilir düğme grupları oluşturma
Komut grubu, bir menü veya araç çubuğunda her zaman birlikte görünen bir komut koleksiyonudur. Herhangi bir komut grubu, .vsct dosyasının CommandPlacements bölümünde farklı üst menülere atanarak yeniden kullanılabilir.
Komut grupları genellikle düğmeler içerir, ancak başka menüler veya birleşik giriş kutuları da içerebilir.
Yeniden kullanılabilir bir düğme grubu oluşturmak için
adlı
ReusableButtons
bir VSIX projesi oluşturun. Daha fazla bilgi için bkz . Menü komutuyla uzantı oluşturma.Proje açıldığında ReusableCommand adlı özel bir komut öğesi şablonu ekleyin. Çözüm Gezgini proje düğümüne sağ tıklayın ve Yeni Öğe Ekle'yi>seçin. Yeni Öğe Ekle iletişim kutusunda Visual C#>Genişletilebilirlik'e gidin ve Özel Komut'a tıklayın. Pencerenin altındaki Ad alanında, komut dosyası adını ReusableCommand.cs olarak değiştirin.
.vsct dosyasında Simgeler bölümüne gidin ve projenin gruplarını ve komutlarını içeren GuidSymbol öğesini bulun. GuidReusableCommandPackageCmdSet olarak adlandırılmalıdır.
Aşağıdaki örnekte olduğu gibi, gruba ekleyeceğiniz her düğme için bir IDSymbol ekleyin.
<GuidSymbol name="guidReusableCommandPackageCmdSet" value="{7f383b2a-c6b9-4c1d-b4b8-a26dc5b60ca1}"> <IDSymbol name="MyMenuGroup" value="0x1020" /> <IDSymbol name="ReusableCommandId" value="0x0100" /> <IDSymbol name="SecondReusableCommandId" value="0x0200" /> </GuidSymbol>
Varsayılan olarak, komut öğesi şablonu MyMenuGroup adlı bir grup ve sağladığınız ada sahip bir düğme ve her biri için bir IDSymbol girişi oluşturur.
Gruplar bölümünde, Simgeler bölümünde verilenlerle aynı GUID ve KIMLIK özniteliklerine sahip bir Grup öğesi oluşturun. Ayrıca, aşağıdaki örnekte olduğu gibi var olan bir grubu veya komut şablonu tarafından sağlanan girdiyi kullanabilirsiniz. Bu grup Araçlar menüsünde görünür
<Groups> <Group guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/> </Group> </Groups>
Yeniden kullanmak üzere bir düğme grubu oluşturmak için
Komutu veya menüyü, komutun veya menünün tanımında grubu üst öğe olarak kullanarak veya CommandPlacements bölümünü kullanarak komutu veya menüyü gruba yerleştirerek bir gruba yerleştirebilirsiniz.
Düğmeler bölümünde grubunuzun üst öğesi olan bir düğme tanımlayın veya aşağıdaki örnekte gösterildiği gibi paket şablonu tarafından sağlanan düğmeyi kullanın.
<Button guid="guidReusableCommandPackageCmdSet" id="ReusableCommandId" priority="0x0100" type="Button"> <Parent guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <ButtonText>Invoke ReusableCommand</ButtonText> </Strings> </Button>
Bir düğmenin birden fazla grupta görünmesi gerekiyorsa, KomutLar bölümünden sonra yerleştirilmesi gereken CommandPlacements bölümünde bu düğme için bir girdi oluşturun. CommandPlacement öğesinin GUID ve ID özniteliklerini, konumlandırmak istediğiniz düğmeninkilerle eşleşecek şekilde ayarlayın ve ardından aşağıdaki örnekte gösterildiği gibi Üst öğesinin GUID ve Kimliğini hedef grubunkilerle ayarlayın.
<CommandPlacements> <CommandPlacement guid="guidReusableCommandPackageCmdSet" id="SecondReusableCommandId" priority="0x105"> <Parent guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" /> </CommandPlacement> </CommandPlacements>
Dekont
Öncelik alanının değeri, komutun yeni komut grubundaki konumunu belirler. CommandPlacement öğesinde ayarlanan öncelikler, öğe tanımında ayarlananları geçersiz kılar. Daha düşük öncelik değerlerine sahip komutlar, daha yüksek öncelik değerlerine sahip komutlardan önce görüntülenir. Yinelenen öncelik değerlerine izin verilir, ancak aynı öncelik değerine sahip komutların göreli konumu garanti edilemez çünkü devenv /setup komutunun kayıt defterinden son arabirimi oluşturma sırası tutarlı olmayabilir.
Menüye yeniden kullanılabilir bir düğme grubu yerleştirmek için
bölümünde bir girdi
CommandPlacements
oluşturun. Öğesinin GUID'siniCommandPlacement
ve kimliğini grubunuzdakiler olarak, üst GUID'yi ve kimliği de hedef konumunkilere ayarlayın.CommandPlacements bölümü Komutlar bölümünden hemen sonra yerleştirilmelidir:
<CommandTable> ... <Commands>... </Commands> <CommandPlacements>... </CommandPlacements> ... </CommandTable>
Komut grubu birden fazla menüye eklenebilir. Üst menü, oluşturduğunuz, Visual Studio tarafından sağlanan bir menü (ShellCmdDef.vsct veya SharedCmdDef.vsct'de açıklandığı gibi) veya başka bir VSPackage'da tanımlanan menü olabilir. Üst menü sonunda Visual Studio'ya veya VSPackage tarafından görüntülenen bir kısayol menüsüne bağlı olduğu sürece üst katman sayısı sınırsızdır.
Aşağıdaki örnek, grubu diğer düğmelerin sağındaki Çözüm Gezgini araç çubuğuna yerleştirir.
<CommandPlacements> <CommandPlacement guid="guidReusableCommandPackageCmdSet" id="MyMenuGroup" priority="0xF00"> <Parent guid="guidSHLMainMenu" id="IDM_VS_TOOL_PROJWIN"/> </CommandPlacement> </CommandPlacements>
<CommandPlacements> <CommandPlacement guid="guidButtonGroupCmdSet" id="MyMenuGroup" priority="0x605"> <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS" /> </CommandPlacement> </CommandPlacements>