Создание настраиваемой панели ленты надстройки Word - заголовок ленты должен соответствовать случаю заголовков ленты слов по умолчанию - PullRequest
0 голосов
/ 05 февраля 2020

Я разрабатываю Word-Addin, используя VSTO, который совместим с Word 2013 и более поздними версиями.

У меня есть файлы Ribbon.xml и Ribbon.cs, и я внедрил метку Word-addin в case title . У меня только один файл ленты. xml.

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load" >
  <ribbon>
    <tabs>
      <tab id ="Ribbon1" label="Test"  >
        <group id="Document" getLabel="Document"  imageMso="ControlsGallery">
        <!-- Some content here -->
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

Конечный продукт моего проекта - файл .exe, где мы можем установить Word-Addin (внутренние операции, выполняемые в наборе DLL файлы) на клиентском компьютере.

Когда Word имеет метки лент по умолчанию в верхнем регистре, как мы должны изменить ленту. xml, чтобы имя ленты отображалось в верхнем регистре ('TEST') вместе с другими словами ленты. В настоящее время мое отображается так, как показано ниже (взято из Word 2013).

enter image description here

Также, как мы должны определить, какой случай используется в панели ленты Word по умолчанию названия.

Я искал в Интернете, но не нашел поддерживающей статьи. Пожалуйста, помогите мне с этим.

Заранее спасибо.

1 Ответ

0 голосов
/ 06 февраля 2020

Я нашел ответ.

Создан другой набор Ribbon.cs и Ribbon. xml для хранения кода ленты в верхнем регистре, и теперь у меня установлены следующие классы и файлы xml.

  • RibbonTitleCase.cs
  • RibbonTitleCase. xml
  • RibbonUpperCase.cs
  • RibbonUpperCase. xml

Добавлен код ниже в ThisAddin.CreateRibbonExtensibilityObject метод

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    FieldInfo temp = this.ItemProvider.GetType().GetField("_officeVersion", BindingFlags.NonPublic | BindingFlags.Instance);
    uint officeVersion = (uint)temp.GetValue(this.ItemProvider);

    if (officeVersion == 15)
    {
        return new RibbonUpperCase();
    }
    else
    {
        return new RibbonTitleCase();
    }
}

Попытка использовать один класс Ribbon.cs и с двумя файлами ленты. xml, но это не удалось.

...