我正在扩展RibbonGroup并删除填充/边距,以便它们可以嵌套而不会变得丑陋(只要标头未设置或为null);但是,我很难确定要添加到GroupSizeDefinitions的正确ControlSizeDefinition对象,我正在添加到该组以调整信息大小。
我的方法如下: 如果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>
答案 0 :(得分:0)
不确定是否有其他人正在寻找答案;但是,我确实想出了一个。不幸的是,这不是一个简单的修复。每个嵌套的功能区组必须测量其各自的控件,并且基本上执行一个Arrange(没有实际进行布局)传递,以确定它应该具有的各种组大小定义的大小。然后在实际安排过程中,您必须手动设置孩子的控件大小定义。