Три маленьких поля ввода больше не помещаются в одни и те же столбцы

После последнего обновления для офиса я обнаружил, что 3 поля редактирования, которые раньше идеально помещались на ленте друг над другом, больше не умещались, и Excel вставлял пустое место вместо третьего, а третье выдвигалось к следующий столбец

Вот экран печати того, что происходит: Вот моя 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>

Кто-нибудь еще с этим вопросом?

1 ответ

Я думаю, что нашел ответ, и это так глупо, что вы не поверите. Вы знаете, как Windows имеет это "Изменить размер текста, приложений и других элементов?". Установите это значение на 125%, и ваши кнопки больше не будут соответствовать Windows 7. Я действительно надеюсь, что они исправили это в Windows 10, потому что просто глупо, что тестеры пропустили это.

Недавно имея дело с HDPI-рендерингом на WinForms, я также случайно выяснил, что происходит с лентой: она умещается в 3 текстовых окнах при отображении с масштабированием 96 точек на дюйм / 100%. При настройках масштабирования разрешения 125% и выше на ленте помещаются только два текстовых поля.

В своем ответе вы указываете версию ОС. Это не имеет ничего общего с самой ОС: ОС предоставляет приложению только параметры среды, такие как масштабирование DPI каждого экрана.

Речь идет о (i) о том, как само приложение решает вести себя в соответствии с настройками среды (так называемые режимы DPI, такие как DPI без учета, с учетом системы или с учетом монитора), и (ii) как форма ленты перерисовывается при высоком DPI. среды.

Фактически, теперь я разрабатываю свои winforms из Surface 4 Pro (экран HDPI / 200% масштабирование / Windows 10), для которого я установил 100% масштабирование. Я также установил разрешение 1920x1200, иначе оно станет неуправляемым. Это сделано для сохранения согласованности со старыми формами, формами, разработанными коллегами на машинах с низким разрешением, и рекомендациями. Обратите внимание, что разрешение не меняет поведения, только масштабирование.

Интересное чтение:

У меня точно такое же поведение, и, похоже, мне приходится иметь дело либо с версией Office, либо с версией Windows, которую вы используете.

У меня есть 3 поля ввода одинаковой длины, сгруппированные в элементе окна. (см. полный XML-код ленты ниже)

Это надстройка Word с XML-файлом, добавленным в файл.dotm. Я проверил это на двух отдельных машинах:

Машина А

ОС: Windows 7, версия MS Office: 365, версия Word: "1811 (сборка 11029. 20108" нажми и работай ")"

Лента на машине А показывает красиво

Машина Б

ОС: Windows 10, версия MS Office: 365, версия Word: "1811 (сборка 11029. 20079 Microsoft Store)"

Лента на машине B показывает третье текстовое поле в стороне

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>
Другие вопросы по тегам