三个小编辑框不再适合同一列

Three small edit-boxes no longer fit on the same columns

最近office更新后,我发现以前在功能区中完全适合的3个编辑框彼此重叠,不再适合,并且excel插入一个空的space而不是第三个,并将第三个推到下一列。

这是发生的情况的打印屏幕: 这是我的色带 XML 部分:

<customUI  xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="MyAddInInitialize">
    <ribbon >
        <tabs >     
            <tab id="tabIqvia" getLabel="onGetLabel" getVisible="GetVisible"     >   
                <group id="grpInfo" getLabel="onGetLabel"   getVisible="GetVisible" getImage = "onGetImage" getSupertip="onGetSupertip" >
                    <editBox id="edbInfo1" getLabel="onGetLabel"    getText="onGetText" sizeString="FALSE"      getEnabled = "onGetEnabled"
                            getScreentip="onGetScreentip"   getSupertip="onGetSupertip" />
                    <editBox id="edbInfo2" getLabel="onGetLabel"    getText="onGetText" sizeString="FALSE"      getEnabled = "onGetEnabled"
                            getScreentip="onGetScreentip"   getSupertip="onGetSupertip" />
                    <editBox id="edbInfo3" getLabel="onGetLabel"    getText="onGetText" sizeString="FALSE"      getEnabled = "onGetEnabled"
                            getScreentip="onGetScreentip"   getSupertip="onGetSupertip" />      
                    <separator id="sepInfo3" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

还有其他人遇到这个问题吗?

我有完全相同的行为,它似乎必须处理您正在使用的 Office 版本或 Windows 版本。

我将 3 个相同长度的编辑框分组在一个框项中。 (请参阅下面的完整功能区 XML 代码)

这是一个 Word 加载项,其中 xml 文件嵌入在 .dotm 文件中。 我在两台不同的机器上测试过它:

机器A

OS: Windows 7, MS Office版本:365, Word版本:“1811(Build 11029.20108点击-运行)”

Ribbon on Machine A shows nicely

机器 B

OS: Windows 10, MS Office版本:365, Word 版本:“1811(内部版本 11029.20079 Microsoft Store)”

Ribbon on Machine B shows the third textbox aside

XML代码:

<ribbon>
<tabs>
<tab id="tab_myMacro" label="myMacro" insertAfterMso="TabHome">

    <group id="group_myMacro_Dates" label="Date Calculations" imageMso="DateAndTimeInsert">
        <box id="box_myMacro_Dates_Toogles" boxStyle="vertical">
            <toggleButton id="toogleButton_myMacro_Dates_CalculateStart" label="Calculate Start" showLabel="false" imageMso="CDAudioStartTime" onAction="ribDatesCalculateStart"/>
            <toggleButton id="toogleButton_myMacro_Dates_CalculateFinish" label="Calculate Finish" showLabel="false" imageMso="CDAudioStopTime" onAction="ribDatesCalculateStart"/>
            <toggleButton id="toogleButton_myMacro_Dates_CalculateDuration" label="Calculate Duration" showLabel="false" imageMso="StartAfterPrevious" onAction="ribDatesCalculateStart"/>
        </box>
        <box id="box_myMacro_Dates_Labels" boxStyle="vertical">
            <labelControl id="labelControl_myMacro_Dates_CalculateStart" label=" Start:"/>
            <labelControl id="labelControl_myMacro_Dates_CalculateFinish" label=" Finish:"/>
            <labelControl id="labelControl_myMacro_Dates_CalculateDuration" label=" F-S+1 ="/>
        </box>
        <box id="box_myMacro_Dates_Editboxes" boxStyle="vertical">
            <editBox id="editbox_myMacro_Dates_Start" showLabel="false" showImage="false" sizeString="_01_Jan_2010_" onChange="ribDatesStartChanged"/>
            <editBox id="editbox_myMacro_Dates_Finish" showLabel="false" showImage="false" sizeString="_01_Jan_2010_" onChange="ribDatesFinishChanged"/>
            <editBox id="editbox_myMacro_Dates_Duration" showLabel="false" showImage="false" sizeString="_01_Jan_2010_" onChange="ribDatesDurationChanged"/>
        </box>
        <box id="box_myMacro_Dates_DatePopUps" boxStyle="vertical">
            <button id="labelControl_myMacro_Dates_StartPopUp" showLabel="false" showImage="true" imageMso="DateAndTimeInsert"/>
            <button id="labelControl_myMacro_Dates_FinishPopUp" showLabel="false" showImage="true" imageMso="DateAndTimeInsert"/>
        </box>
    </group>

</tab>
</tabs>
</ribbon>
</customUI>

我想我找到了答案,它是如此愚蠢,你不会相信。你知道 Windows 是如何做到 "Change the size of text, apps and other items?" 的。将其设置为 125%,您的按钮将不再适合 Windows 7。我真的希望他们在 Windows 10 上解决了这个问题,因为测试人员错过那个按钮真是太愚蠢了。

最近处理了 WinForms 上的 HDPI 渲染,我也偶然弄清楚了功能区是怎么回事:它在 96 DPI/100% 缩放比例下显示时适合 3 个文本框。在 125% 及以上的分辨率缩放设置下,功能区仅适合两个文本框。

在您自己的回答中,您提到了 OS 版本。这与 OS 本身无关: OS 仅向应用程序提供环境设置,例如每个屏幕的 DPI 缩放。

它是关于 (i) 应用程序本身如何根据环境设置决定行为的(所谓的 DPI 模式,例如 DPI 不感知、系统感知或感知每显示器),以及 (ii) 在高 DPI 环境下如何重绘色带形式

事实上,我现在使用 Surface 4 Pro(HDPI 屏幕/200% 缩放比例/Windows 10)设计我的 winforms,我将其设置为 100% 缩放比例。我还将分辨率设置为 1920x1200,否则它变得难以管理。这是为了保持与旧表单、同事在低 DPI 机器上设计的表单以及 recommendations 的一致性。请注意,分辨率 不会 改变行为,只有缩放会改变。

一些有趣的阅读: