1

根据 MS 文档,功能区框架的应用程序菜单应该能够承载DropDownGallery元素,但我无法通过 uicc 编译器。例如:

<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>

这会导致 uicc 编译器出现 SC1053 错误:

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 文档明确声明这DropDownGalleryMenuGroup.

是什么赋予了?

4

1 回答 1

1

回答我自己的问题:

事实证明,这里有两个问题。

  1. 应用程序菜单中的画廊是有限的。唯一支持的布局是命令的一级垂直菜单,唯一支持的属性是CommandNameApplicationMode。MS 文档中的任何地方都没有提到这些限制。

  2. 功能区编译器 uicc.exe 中有一个明显的错误:除了属性之间,它不允许元素标记中的任何地方出现任何空白。

将这些放在一起,这是唯一真正适用于应用程序菜单中画廊的标记:

<DropDownGallery CommandName="MyAppGallery"/>

或者

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

请特别注意,元素名称和属性之间只有空格。即使 the>和 the之间的空格</也会导致功能区编译器出错:

<!-- this will fail! -->
<DropDownGallery CommandName="MyAppGallery"> </DropDownGallery>
于 2013-02-18T14:34:56.343 回答