使用 WPF 功能区(适用于 .NET 4)和 RibbonControlSizeDefinition 对功能区项目大小进行项目级别控制

发布于 2024-12-22 07:05:43 字数 1786 浏览 6 评论 0原文

根据 MSDN 文档,功能区:RibbonControlSizeDefinition 可用于通过设置 ControlSizeDefinition 属性来控制 WPF 功能区上项目的大小。有人使用此属性取得过成功吗?我发现它完全被忽略了。我最初使用数据绑定设置它,但也尝试使用文件后面的代码。

这个问题类似,但注释正确在评论之一中,OP 使用了 RibbonControlGroup,因此看到了预期的行为。

我知道通常最好让丝带自行决定尺寸。遗憾的是,这不是这个项目的选择。

我在下面列出了 XAML 代码中不起作用的部分。

    <ribbon:RibbonTab Header="MyTab">
        <ribbon:RibbonGroup Header="MyGroup">
            <ribbon:RibbonButton Label="My big button" Name="BigButton"
                                 LargeImageSource="Images\Ribbon\assignments_duties_a2k_32.png"
                                 SmallImageSource="Images\Ribbon\assignments_duties_a2k_16.png">
                <ribbon:RibbonButton.ControlSizeDefinition>
                    <ribbon:RibbonControlSizeDefinition ImageSize="Large" IsLabelVisible="True" />
                </ribbon:RibbonButton.ControlSizeDefinition>
            </ribbon:RibbonButton>
            <ribbon:RibbonButton Label="My little button" Name="SmallButton"
                                 LargeImageSource="Images\Ribbon\assignments_duties_a2k_32.png"
                                 SmallImageSource="Images\Ribbon\assignments_duties_a2k_16.png">
                <ribbon:RibbonButton.ControlSizeDefinition>
                    <ribbon:RibbonControlSizeDefinition ImageSize="Small" IsLabelVisible="True" />
                </ribbon:RibbonButton.ControlSizeDefinition>
            </ribbon:RibbonButton>
        </ribbon:RibbonGroup>
    </ribbon:RibbonTab>

According to the MSDN documentation, a ribbon:RibbonControlSizeDefinition can be used to control the size of an item on a WPF ribbon by setting the ControlSizeDefinition property. Has anyone had any success using this property? I find that it is completely ignored. I initially set it using data binding, but have also tried using the code behind file.

This question is similar, but it is correctly noted in one of the comments that the OP had used a RibbonControlGroup, and therefore was seeing the expected behaviour.

I understand that it's usually best to allow the ribbon to do it's own thing regarding sizing. Sadly that's not an option for this project.

I've listed the part of my XAML code that doesn't work below.

    <ribbon:RibbonTab Header="MyTab">
        <ribbon:RibbonGroup Header="MyGroup">
            <ribbon:RibbonButton Label="My big button" Name="BigButton"
                                 LargeImageSource="Images\Ribbon\assignments_duties_a2k_32.png"
                                 SmallImageSource="Images\Ribbon\assignments_duties_a2k_16.png">
                <ribbon:RibbonButton.ControlSizeDefinition>
                    <ribbon:RibbonControlSizeDefinition ImageSize="Large" IsLabelVisible="True" />
                </ribbon:RibbonButton.ControlSizeDefinition>
            </ribbon:RibbonButton>
            <ribbon:RibbonButton Label="My little button" Name="SmallButton"
                                 LargeImageSource="Images\Ribbon\assignments_duties_a2k_32.png"
                                 SmallImageSource="Images\Ribbon\assignments_duties_a2k_16.png">
                <ribbon:RibbonButton.ControlSizeDefinition>
                    <ribbon:RibbonControlSizeDefinition ImageSize="Small" IsLabelVisible="True" />
                </ribbon:RibbonButton.ControlSizeDefinition>
            </ribbon:RibbonButton>
        </ribbon:RibbonGroup>
    </ribbon:RibbonTab>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千年*琉璃梦 2024-12-29 07:05:43

经过一些实验,我有一个解决方法。我尝试使用功能区:RibbonGroup.GroupSizeDefinitions 属性,使用组级大小调整而不是项目级大小调整。这按记录工作。此外,将其设置为空 RibbonGroupSizeDefinition 足以使项目级属性发挥作用。我上面的代码变成:

<ribbon:RibbonTab Header="MyTab">
     <ribbon:RibbonGroup Header="MyGroup">

            <ribbon:RibbonGroup.GroupSizeDefinitions>
                <ribbon:RibbonGroupSizeDefinition>
                </ribbon:RibbonGroupSizeDefinition>
            </ribbon:RibbonGroup.GroupSizeDefinitions>

         <ribbon:RibbonButton Label="My big button" Name="BigButton"                                  LargeImageSource="Images\Ribbon\assignments_duties_a2k_32.png"                                  SmallImageSource="Images\Ribbon\assignments_duties_a2k_16.png">
                <ribbon:RibbonButton.ControlSizeDefinition>
                    <ribbon:RibbonControlSizeDefinition ImageSize="Large" IsLabelVisible="True" />
                </ribbon:RibbonButton.ControlSizeDefinition>
         </ribbon:RibbonButton>
         <ribbon:RibbonButton Label="My little button" Name="SmallButton"                                  LargeImageSource="Images\Ribbon\assignments_duties_a2k_32.png"                                  SmallImageSource="Images\Ribbon\assignments_duties_a2k_16.png">
                <ribbon:RibbonButton.ControlSizeDefinition>
                    <ribbon:RibbonControlSizeDefinition ImageSize="Small" IsLabelVisible="True" />
                </ribbon:RibbonButton.ControlSizeDefinition>
         </ribbon:RibbonButton>
     </ribbon:RibbonGroup>
 </ribbon:RibbonTab> 

After some experimentation, I have a workaround. I tried using group-level sizing instead of item-level sizing, using the ribbon:RibbonGroup.GroupSizeDefinitions property. This works as documented. Additionally, setting this to an empty RibbonGroupSizeDefinition is enough to make the item-level properties work. My code from above becomes:

<ribbon:RibbonTab Header="MyTab">
     <ribbon:RibbonGroup Header="MyGroup">

            <ribbon:RibbonGroup.GroupSizeDefinitions>
                <ribbon:RibbonGroupSizeDefinition>
                </ribbon:RibbonGroupSizeDefinition>
            </ribbon:RibbonGroup.GroupSizeDefinitions>

         <ribbon:RibbonButton Label="My big button" Name="BigButton"                                  LargeImageSource="Images\Ribbon\assignments_duties_a2k_32.png"                                  SmallImageSource="Images\Ribbon\assignments_duties_a2k_16.png">
                <ribbon:RibbonButton.ControlSizeDefinition>
                    <ribbon:RibbonControlSizeDefinition ImageSize="Large" IsLabelVisible="True" />
                </ribbon:RibbonButton.ControlSizeDefinition>
         </ribbon:RibbonButton>
         <ribbon:RibbonButton Label="My little button" Name="SmallButton"                                  LargeImageSource="Images\Ribbon\assignments_duties_a2k_32.png"                                  SmallImageSource="Images\Ribbon\assignments_duties_a2k_16.png">
                <ribbon:RibbonButton.ControlSizeDefinition>
                    <ribbon:RibbonControlSizeDefinition ImageSize="Small" IsLabelVisible="True" />
                </ribbon:RibbonButton.ControlSizeDefinition>
         </ribbon:RibbonButton>
     </ribbon:RibbonGroup>
 </ribbon:RibbonTab> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文