RibbonGroup を拡張し、パディング/マージンを削除して、醜くならずにネストできるようにします (ヘッダーが設定されていないか null である限り)。ただし、サイズ情報のためにグループに追加している GroupSizeDefinitions に追加する正しい ControlSizeDefinition オブジェクトを決定するのが困難です。
私のアプローチは次のとおりです。RibbonGroup の Item が RibbonGroup の場合は、サイズ変更後にコントロールを希望する幅に幅を設定して ControlSizeDefinition を追加します。幅を決定するために、コントロールの目的のサイズを要求します。素敵ですが、ワンサイズしかありません。私が知る限り、これを行う最善の方法は、現在の GroupSizeDefinition を設定することです。どうすればそれを行うことができますか、またはこれが間違った方法である場合、正しい方法は何ですか?
編集: VS2012 で C# を使用しています。
編集:これは、問題をほぼ説明するコードです。グループ サイズの定義がある場合とない場合で試して、動作を確認してください。
<RibbonTab Header="Test">
<RibbonGroup Header="Nestable">
<RibbonGroup.GroupSizeDefinitions>
<RibbonGroupSizeDefinition>
<RibbonControlSizeDefinition ImageSize="Large" IsLabelVisible="True" IsCollapsed="False"/>
<RibbonControlSizeDefinition Width="138"/>
<RibbonControlSizeDefinition Width="148"/>
</RibbonGroupSizeDefinition>
<RibbonGroupSizeDefinition>
<RibbonControlSizeDefinition ImageSize="Small" IsLabelVisible="False" IsCollapsed="False"/>
<RibbonControlSizeDefinition Width="138"/>
<RibbonControlSizeDefinition Width="148"/>
</RibbonGroupSizeDefinition>
<RibbonGroupSizeDefinition>
<RibbonControlSizeDefinition ImageSize="Small" IsLabelVisible="False" IsCollapsed="False"/>
<RibbonControlSizeDefinition Width="78"/>
<RibbonControlSizeDefinition Width="148"/>
</RibbonGroupSizeDefinition>
</RibbonGroup.GroupSizeDefinitions>
<RibbonButton Label="Button" SmallImageSource="16x16.png" LargeImageSource="32x32.png"/>
<RibbonGroup>
<RibbonButton Label="Button" SmallImageSource="16x16.png"/>
<RibbonButton Label="Button" SmallImageSource="16x16.png"/>
<RibbonButton Label="Button" SmallImageSource="16x16.png"/>
<RibbonButton Label="Button" SmallImageSource="16x16.png"/>
</RibbonGroup>
<RibbonGroup>
<RibbonButton Label="Button" SmallImageSource="16x16.png" LargeImageSource="32x32.png"/>
<RibbonButton Label="Button" SmallImageSource="16x16.png" LargeImageSource="32x32.png"/>
<RibbonButton Label="Button" SmallImageSource="16x16.png" LargeImageSource="32x32.png"/>
</RibbonGroup>
</RibbonGroup>
</RibbonTab>