0

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

1 に答える 1

0

他の誰かがこれに対する答えを探しているかどうかはわかりません。しかし、私は思いついた。残念ながら、それは簡単な修正ではありません。ネストされた各リボン グループは、個々のコントロールを測定し、基本的に (実際にレイアウトを行うことなく) アレンジ パスを実行して、さまざまなグループ サイズの定義に必要なサイズを決定する必要があります。次に、実際のアレンジ パス中に、子のコントロール サイズの定義を手動で設定する必要があります。

于 2013-06-26T13:33:14.390 に答える