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のドキュメントにDropDownGalleryは、で許可されている要素が明示的に記載されていMenuGroupます。

何が得られますか?

4

1 に答える 1

1

私自身の質問に答える:

ここには2つの問題があることがわかりました。

  1. アプリメニューのギャラリーは限られています。サポートされている唯一のレイアウトは、コマンドの1レベルの垂直メニューであり、サポートされている属性はCommandNameとだけApplicationModeです。これらの制限は、MSのドキュメントのどこにも記載されていません。

  2. リボンコンパイラuicc.exeには明らかなバグがあります。これは、属性間を除いて、要素マークアップのどこにも空白を許可しません。

これらをまとめると、アプリメニューのギャラリーで実際に機能する唯一のマークアップは次のとおりです。

<DropDownGallery CommandName="MyAppGallery"/>

また

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

特に、要素名と属性の間にスペースがあることに注意してください。>との間にスペースがあっても</、リボンコンパイラでエラーが発生します。

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