首页 > 解决方案 > GroupSizeDefinition 不适用于为功能区组定义的样式

问题描述

我有一个主列表,它是一个功能区组。在每个功能区组内都有另一个列表,称为功能区按钮的子功能。

<DataTemplate x:Key="buttonTempl">
                <RibbonButton IsEnabled="{Binding IsEnabled}" Label="{Binding Path=SubFunctionName}" Command="{Binding SubFunctionCommand}" LargeImageSource="{Binding LargeButtonImage}" SmallImageSource="{Binding SmallButtonImage}"/>
            </DataTemplate>
            <RibbonGroupSizeDefinitionBaseCollection x:Key="groupSize">
                <RibbonGroupSizeDefinition IsCollapsed="False" />
            </RibbonGroupSizeDefinitionBaseCollection>
            <Style TargetType="RibbonGroup" x:Key="groupStyle">
                <Setter Property="GroupSizeDefinitions" Value="{StaticResource groupSize}"/>
                <Setter Property="Header" Value="{Binding DisplayName}"/>
                <Setter Property="ItemsSource" Value="{Binding SubFunctions}"/>
                <Setter Property="ItemTemplate" Value="{StaticResource buttonTempl}"/>
                <Setter Property="SmallImageSource" Value="{Binding RibbonGroupSmallImageSource}"/>
                <Setter Property="Margin" Value="0"/>
            </Style>
            <Style TargetType="RibbonTab" x:Key="tabStyle">
                <Setter Property="Header" Value="Pump"/>
                <Setter Property="ItemsSource" Value="{Binding MainFunctions}"/>
                <Setter Property="ItemContainerStyle" Value="{StaticResource groupStyle}"/>
            </Style>

因此,如果我使用如下单独的功能区组,groupSizeddefinition 正在工作: <RibbonGroup Header="Selection" Name="SelectionMenu" GroupSizeDefinitions="{StaticResource groupSize}"> 但不能使用上面带有模板的代码。

将ribbongroup定义为样式可以做些什么来工作groupsizeddefinition?

标签: wpftemplatesribbon-control

解决方案


这不是一个真正的答案,但评论太多了。

我试图重现这个问题,并在调试器中使用“Live Visual Tree”和“Live Property Explorer”窗口观察到以下效果。

明确指定 GroupSizeDefinitions

<RibbonGroup Style="{StaticResource groupStyle}" GroupSizeDefinitions="{StaticResource groupSize}" />

样式中的GroupSizeDefinitions被划掉,使用本地定义

在此处输入图像描述

在样式中指定 GroupSizeDefinitions

<RibbonGroup Style="{StaticResource groupStyle}"/>

Live property explorer 显示了一个本地定义,我认为它不存在,也被划掉了。

实际使用的 GroupSizeDefinitions 位于 Coercion 标题

在此处输入图像描述

恐怕我无法解释,但也许其他人可以。


推荐阅读