0

我正在扩展 RibbonGroup 并删除填充/边距,以便它们可以嵌套而不会变得丑陋(只要标题未设置或为空);但是,我很难确定要添加到 GroupSizeDefinitions 中的正确 ControlSizeDefinition 对象,该 GroupSizeDefinitions 我要添加到组中以获取大小信息。

我的方法如下:如果 RibbonGroup 中的 Item 是 RibbonGroup,则添加一个 ControlSizeDefinition,其 Width 设置为我希望控件在调整大小后的宽度。为了确定宽度,我要求控件的所需大小。很好,但我只有一种尺寸。就我所知,最好的方法是设置当前的 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 回答