Проблемы масштабирования ленты в MS Outlook 2016 - PullRequest
0 голосов
/ 24 мая 2019

Когда ширина окна Outlook Explorer или инспектора уменьшается, лента меняется. В моем дополнении VSTO я могу влиять на то, как происходит масштабирование с лентой Office?

Далее на определенной ширине вкладка становится одним значком с маленькой стрелкой, которая при нажатии на кнопки / элементы вкладки появляется во всплывающем окне. Как я могу установить значок, который появляется в этом случае?

Ниже приведен мой текущий XML-код для вкладки.

Я также добавил изображение, показывающее, как выглядит моя лента, когда окно становится узким.

Я не могу найти новую разметку XML от Microsoft, действительно ли это последняя версия [MS-CUSTOMUI2]: спецификация версии 2 разметки пользовательского интерфейса XML

Image of narrow ribbon with single button and arrow

<tabs>
<!-- Creates a new App Tab on the inspector toolbar-->
<tab idMso="TabReadMessage">
  <group id="AppGroup" label="App">
    <!-- A toggle or ON/OFF button to Encrypt or Decrypt an email and show the current encryption -->
    <toggleButton id="insDecryptButton"
        getLabel="insDecryptButton_getLabel"
        size="large"
        onAction="insDecryptButton_ButtonClick"
        getImage="insDecryptButton_getImage"
        getSupertip="insDecryptButton_getSupertip"
        getScreentip="insDecryptButton_getScreentip"
        getPressed="insDecryptButton_getPressed"
                  getVisible="insDecryptButton_getVisible"/>

    <!-- A Button with drop down that shows all the File Numbers in the Email. If there are no file numbers this will not appear. -->
    <dynamicMenu id="insMenu"
               getLabel="insMenu_getLabel"
               size="large"
               getImage="insMenu_getImage"
                 getVisible="insMenu_getVisible"
                 getSupertip="insMenu_getSupertip"
                getScreentip="insMenu_getScreentip"
               getContent="insMenu_getContent"/>

    <!-- Button to upload the email or attachments to IPAS -->
    <dynamicMenu id="upMenu"
               getLabel="upMenu_getLabel"
               size="large"
               getImage="upMenu_getImage"
                 getVisible="upMenu_getVisible"
                 getSupertip="upMenu_getSupertip"
                getScreentip="upMenu_getScreentip"
               getContent="upMenu_getContent"/>
  </group>
</tab>

1 Ответ

0 голосов
/ 13 июня 2019

Офисные приложения выполняют оптимизацию масштабирования самостоятельно.Для этого нет новой схемы.Вместо этого, как заметил другой автор, вам необходимо предоставить обратный вызов getImage для всех ваших элементов управления group.Это должно выглядеть следующим образом:

 C#: IPictureDisp GetImage(IRibbonControl control)
 VBA: Sub GetImage(control As IRibbonControl, ByRef image)
 C++: HRESULT GetImage([in] IRibbonControl *pControl, [out, retval] IPictureDisp ** ppdispImage)
 Visual Basic: Function GetImage(control as IRibbonControl) as IPictureDisp

Позвонив на Invadiate или InvalidateControl, вы можете получить новое отображаемое изображение (таким образом, ваш обратный вызов будет вызван).

Подробнее о пользовательском интерфейсе Fluent (пользовательском интерфейсе ленты) см. В следующих статьях:

Если вы хотите узнать больше о динамических настройках, вы можете взглянуть на:

...