尝试强制 WPF 功能区始终将功能区选项卡组显示为折叠状态(直到用户打开它们)



我试图强制 WPF 功能区始终将功能区选项卡组显示为折叠状态(直到用户打开它们)。我使用折叠组的组大小定义功能区组大小定义了一个资源。然后,我使用该静态资源为功能区组设置样式的 GroupSizeDefinition 属性。但是,我确实看到一些组未处于折叠状态。我是否错过了 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>

您是否尝试过不使用样式?或者使用其他布局面板,比如 DockPanel 而不是 ItemsPanelTemplate 中的 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>

最新更新