2013-02-10 62 views
1

根據MS文檔,功能區框架的應用程序菜單應該能夠承載DropDownGallery元素,但是我無法通過uicc編譯器。例如:Windows功能區框架:應用菜單中的圖庫

<Ribbon.ApplicationMenu> 
    <ApplicationMenu CommandName="AppMenu" > 
    <ApplicationMenu.RecentItems> 
     <RecentItems CommandName="RecentItems" EnablePinning="false" MaxCount="15" /> 
    </ApplicationMenu.RecentItems> 
    <MenuGroup Class="MajorItems"> 
     <DropDownGallery CommandName="MyAppGallery" Type="Commands" HasLargeItems="false"> 
     <DropDownGallery.MenuLayout> 
      <VerticalMenuLayout Gripper="None"/> 
     </DropDownGallery.MenuLayout> 
     </DropDownGallery> 
    </MenuGroup> 
    </ApplicationMenu> 
</Ribbon.ApplicationMenu> 

這導致SC1053錯誤從UICC編譯:

error SC1053 : The attribute 'Type' on the element '{http://schemas.microsoft.com/windows/2009/Ribbon}DropDownGallery' is not defined in the DTD/Schema. 

同樣DropDownGallery語法適用其他地方在我們的應用程序,以及MS文檔明確指出DropDownGallery被許可元素在MenuGroup

什麼給?

回答

1

回答我的問題:

事實證明,有兩個問題在這裏。

  1. 應用程序菜單中的圖庫是有限的。唯一受支持的佈局是一個一級垂直菜單的命令,唯一支持的屬性是CommandNameApplicationMode。這些限制在MS文檔中沒有提及。

  2. 在功能區編譯器uicc.exe中存在一個明顯的錯誤:除了屬性之外,它不允許在元素標記中的任何空白任何

把這些結合在一起,這裏是真正適用於在應用菜單畫廊的唯一標記:

<DropDownGallery CommandName="MyAppGallery"/> 

<DropDownGallery CommandName="MyAppGallery"></DropDownGallery> 

請特別注意的是,只有空間位於元素名稱和屬性之間。即使></之間的空格也會在色帶編譯器中導致錯誤:

<!-- this will fail! --> 
<DropDownGallery CommandName="MyAppGallery"> </DropDownGallery>