1

我正在使用来自 RibbonControlsLibrary.dll 4.0.0.11019、.NET 4.0、C#、WPF 的功能区。可以在此处下载免费示例:http: //www.microsoft.com/en-us/download/details.aspx?id=11877

我的Ribbon.

在我的一个RibbonGroup中,我Ribbon有很多按钮分开RibbonSeparator(见下图)。我知道最好使用多个RibbonGroup's,但由于特定原因,我不能这样做。当我调整我Ribbon的大小时,默认Ribbon布局会使按钮变小。在某个时刻,组折叠成一个按钮。问题是崩溃的时刻来得太早了。我希望我的一些按钮变得更小。这很关键,因为我的一些客户可能有小型显示器。

为了展示它是如何发生的,我将按钮的所有图像更改为示例图像,并将按钮中的所有字母更改为“t”: 在此处输入图像描述

图为我崩溃的瞬间RibbonGroup。如果我将窗口再缩短一点,RibbonGroup就会崩溃。很容易看出,许多按钮仍然可以隐藏它们的文本,或者一些图标可能会变小。

我尝试使用RibbonGroup.GroupSizeDefinitions属性来设置按钮大小的所有可能变体:

    int groupItemsCount = group.Items.Count;
    group.GroupSizeDefinitions.Clear();

    // Fully expanded definition
    var expandedDefinition = new RibbonGroupSizeDefinition();
    for (int i = 0; i < groupItemsCount; i++)
    {
        expandedDefinition.ControlSizeDefinitions.Add(new RibbonControlSizeDefinition {
            ImageSize = RibbonImageSize.Large,
            IsLabelVisible = true
        });
    }
    group.GroupSizeDefinitions.Add(expandedDefinition);

    // Buttons of Ribbon gradually lose label and have small image
    for (int i = groupItemsCount - 1; i >= 0; i--)
    {
        var def = new RibbonGroupSizeDefinition();
        for (int j = 0; j < groupItemsCount; j++)
        {
            if (j >= i)
            {
                def.ControlSizeDefinitions.Add(new RibbonControlSizeDefinition
                {
                    ImageSize = RibbonImageSize.Small,
                    IsLabelVisible = false
                });
            }
            else
            {
                def.ControlSizeDefinitions.Add(new RibbonControlSizeDefinition
                {
                    ImageSize = RibbonImageSize.Large,
                    IsLabelVisible = true
                });
            }
        }
        group.GroupSizeDefinitions.Add(def);
    }

    // Collapsed definition
    group.GroupSizeDefinitions.Add(new RibbonGroupSizeDefinition { IsCollapsed = true });

然后随着调整窗口大小,按钮从右到左变小。以下是Ribbon相同尺寸的相同外观: 在此处输入图像描述

但是窗口调整大小自然会变慢,有时Ribbon调整大小会崩溃:有时按钮在调整大小后会停止改变它们的大小Ribbon

所以最后,我怎样才能Ribbon优化使用可用空间?当然,首选变体是默认Ribbon布局行为,但我怎么知道Ribbon它允许隐藏文本标签并为所有按钮制作更小的图像?

4

0 回答 0