Вставка символа & в свойство Label XML-элементов управления ленты Office

Я создаю вкладку ленты для MS Excel 2016 с нуля, используя XML, хранящийся в файле customUI14.xml. Я создал кнопки со специальным символом «&» в метке кнопки (например, «Вырезать и вставить», или «Сделки и модели» и т. Д.). Код для вставки символа работает нормально, но я не могу заставить метки элементов управления XML отображать этот символ.

Я использовал оба метода, описанные в сообщении Вставка символов в элементы управления XML ленты Office но ничего не работало.

Я не утверждаю, что эти подходы вообще не работают (я пробовал с другими символами, и они работали - то есть с тем же символом «€» в вышеупомянутом сообщении решение, представленное в предыдущем сообщении, работает хорошо)

<menu id="T1G2M1-PGSTRGY" getLabel="RibSetCtlLabel" size="normal" itemSize="normal" 
imageMso="ChartInsertGalleryNew" screentip="Settings &amp; Filters" 
supertip="Options to use during What-If Analysis." getEnabled="RibSetCtlEnabled">

с этой процедурой обратного вызова

Public Function RibSetCtlLabel(ctl As IRibbonControl, ByRef Label)
  Label = "Settings " & Chr(38) & " Filters"
End Function

Оба подхода (символ "&" непосредственно в тексте xml или в строке, применяемой в результате процедуры обратного вызова) не работают должным образом

Я ожидал, что будет кнопка label = "Настройки и фильтры", но отображается "Фильтры настроек"

Обходное решение необходимо запускать как в x32, так и в x64 версии Office 2016.


person Jumpy73    schedule 04.09.2019    source источник
comment
Я мог ошибаться, но я думал, что использование двух подряд сработает ... как Settings && Filters   -  person braX    schedule 04.09.2019
comment
Tks braX ... Я попытался сделать это в строке подсказки, но это не сработало. Это работает так, только если я использую подход с функцией обратного вызова, но я рассматриваю это как обходной путь, потому что мне не нужна динамическая метка для моей кнопки на ленте.   -  person Jumpy73    schedule 05.09.2019


Ответы (2)


Вам нужно продублировать специальный символ в строке, чтобы он был виден в пользовательском интерфейсе ленты. Например:

Ribbon && Fluent UI
person Eugene Astafiev    schedule 04.09.2019
comment
Большое спасибо. Работает только с функцией обратного вызова - person Jumpy73; 04.09.2019
comment
Есть ли способ напрямую использовать специальный символ & в xml-коде? Это был бы более легкий кодовый подход :) - person Jumpy73; 04.09.2019
comment
Не тестировал: &#38;#38; замена амперсанда :-) - person T.M.; 04.09.2020

В XML используют:

&amp;&amp;
person Dominikus    schedule 03.09.2020