1

我试图强制 WPF 功能区始终将功能区选项卡组显示为折叠状态(直到用户打开它们)。我使用折叠组的组大小定义定义了一个资源定义功能区组大小定义。然后我使用该静态资源为 RibbonGroup 设置样式的 GroupSizeDefinitions 属性。但是,我确实看到一些组没有处于折叠状态。我错过了我的 xaml 中的某些内容吗?:

<ribbon:RibbonGroupSizeDefinitionBaseCollection x:Key="groupSizeDefinitions">
    <ribbon:RibbonGroupSizeDefinition IsCollapsed="True"/>
</ribbon:RibbonGroupSizeDefinitionBaseCollection>
<ItemsPanelTemplate x:Key="groupItemsPanelTemplate">
    <StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
<Style TargetType="{x:Type ribbon:RibbonGroup}" BasedOn="{StaticResource RibbonControlStyle}">
    <Setter Property="QuickAccessToolBarId" Value="{Binding Label}" />
    <Setter Property="Header" Value="{Binding Label}" />
    <Setter Property="ItemsSource" Value="{Binding ControlDataCollection}" />
    <Setter Property="ribbon:RibbonTwoLineText.Foreground" Value="Black" />
    <Setter Property="ItemsPanel" Value="{StaticResource groupItemsPanelTemplate}"/>
    <Setter Property="GroupSizeDefinitions"  Value="{StaticResource groupSizeDefinitions}"/>
</Style>
4

1 回答 1

1

您是否尝试在不使用 Style 的情况下这样做?或者使用其他布局面板,比如 ItemsPanelTemplate 中的 DockPanel 而不是 StackPanel?

通过这样做,我能够保持功能区组折叠:

<ribbon:RibbonGroupSizeDefinitionBaseCollection x:Key="MyLayout">
      <ribbon:RibbonGroupSizeDefinition IsCollapsed="True" />
</ribbon:RibbonGroupSizeDefinitionBaseCollection>


<ribbon:RibbonGroup GroupSizeDefinitions="{StaticResource MyLayout}" >
      <ribbon:RibbonButton Command="{x:Static Commands.EditItem}" Label="Edit" />
      <ribbon:RibbonButton Command="{x:Static MyCommands.DeleteItem}" Label="Delete" />
</ribbon:RibbonGroup>
于 2012-12-07T14:08:53.403 回答