2013-01-11 52 views
3

我通過以下this walk-through description定義了工具窗口的工具欄。如何在*。vsct文件中爲工具欄定義SplitDropDown或MenuButton?

添加新的按鈕,工具欄,然後將它們連接起來,以我的包內的代碼,是沒有問題的,並能正常工作(所以我不是在尋找的信息,如何添加簡單的按鈕)。我看到有其他按鈕類型,例如SplitDropDownMenuButton。兩者都完全符合我的要求。但是我找不到有關如何以正確的方式定義子菜單的任何信息,而且我的所有實驗都失敗了。

這是我的按鈕定義:

<Button guid="guidVsCmdSet" id="cmdIdSplitDowndown" priority="0x106" type="SplitDropDown"> 
    <Parent guid="guidVsCmdSet" id="VsToolbarGroup" /> 
    <Icon guid="guidImages" id="bmpPic2" /> 
    <CommandFlag>IconAndText</CommandFlag> 
    <Strings> 
    <CommandName>cmdIdSplitDropdown</CommandName> 
    <ButtonText>Goto Next</ButtonText> 
    </Strings> 
</Button> 

我想補充有一些預先定義/靜態的子項的SplitDropDown按鈕。我猜想按鈕的外觀看起來像Visual Studio的「向後導航」按鈕。這就是我想要實現的。

是否有人知道一個SplitDropDown按鍵的定義,有一子,是什麼樣子?

回答

4

我由我自己解決了這個問題...

它接縫的SplitDropDownMenuButton類型不再由Visual Studio IDE中(至少V11支持,但我haven't測試了早期版本。也許我錯了,但我不能在我的工具欄中找到這些按鈕)。相反,可以使用MenuMenuController類型的菜單。類型Menu行爲類似於棄用MenuButton(即使it's視覺外觀是不完全一樣的,由於it's按鈕的較小的高度)和類型MenuController行爲就像棄用SplitDropDown

因此,爲了得到一個分裂下拉我增加了以下菜單聲明我vsct文件...

<Menu guid="guidVsCmdSet" id="menuIdSubMenu" type="MenuController" priority="0x0001" toolbarPriorityInBand="0x0001"> 
    <Parent guid="guidVsCmdSet" id="VsToolbarGroup" /> 
    <CommandFlag>IconAndText</CommandFlag> 
    <CommandFlag>NotInTBList</CommandFlag> 
    <Strings> 
     <ButtonText>My Button</ButtonText> 
     <CommandName>My Button</CommandName> 
    </Strings> 
</Menu> 

,創造了下拉命令的新組;該組的父母被設置爲菜單。

<Group guid="guidVsCmdSet" id="VsSubMenuGroup" priority="0x0001"> 
    <Parent guid="guidVsCmdSet" id="menuIdSubMenu" /> 
</Group> 

最後,我可以將普通的按鈕添加到該組,這將顯示爲菜單項。

<Button guid="guidVsCmdSet" id="cmdIdSubMenuItem1" priority="0x0001" type="Button"> 
    <Parent guid="guidVsCmdSet" id="VsSubMenuGroup" /> 
    <CommandFlag>TextOnly</CommandFlag> 
    <Strings> 
     <CommandName>cmdIdSubMenuItem1</CommandName> 
     <ButtonText>Members</ButtonText> 
    </Strings> 
</Button> 
+3

謝謝你,vsct和它的文檔是一場噩夢。 – JoanComasFdz