четверг, 31 марта 2016 г.

Урок 13. Амперсанд (&), его код & и подчёркивание быстрых клавиш

Иногда в подписях элементов интерфейса необходимо использовать знак & (амперсанд), в английской языковой традиции заменяющий союз and («и»). Кроме того, иногда нужно использовать также и знаки < или >. Но в xml-разметке все эти символы использовать нельзя, поскольку они являются частью языка разметки. Чтобы всё же их использовать, а также использовать символ двойных кавычек внутри двойных кавычек (или символ одинарных кавычек внутри одинарных), применяются специальные коды:
" — &quot;
' — &apos;
< — &lt;
> — &gt;
& — &amp;
Для быстрой вставки этих кодов в Ribbon XML Editor можно принудительно вызвать меню автодополнения (Ctrl + Пробел) внутри строкового значения параметра и выбрать нужный код из предложенного списка:


Поскольку код &amp; используется также и для управления подчёркиванием горячих клавиш в элементе labelControl, то для его реального отображения его код надо сдваивать: &amp;&amp; В этом случае первый код даёт команду подчеркнуть следующий символ, который уже не рассматривается, как управляющий подчёркиванием, а просто отображается подчёркнутым. Но подчёркивать амперсанд в подписях нужно редко. Как же быть?

Чтобы снять ненужное подчёркивание амперсанда, используется следующий трюк. Поскольку подчёркивание в подписи может быть только одно, система оставляет подчёркнутым только последний из отмеченных кодом &amp; символов. Поэтому нам достаточно отметить им либо другой символ, стоящий после подчёркнутого амперсанда, либо, если подчёркивание в labelControl не нужно вообще, поставить &amp; в конце строки. В последнем случае символа после &amp; уже никакого не будет, и подчёркивания в подписи не появится вообще. Кстати, подчеркнуть символ до амперсанда, видимо, нельзя.

Замечу, что не все элементы отображают подчёркивание. Я нашёл только один элемент — labelControl, поддерживающий эту функцию. Поэтому использовать трюк с убиранием подчёркивания амперсанда в подписях других элементов смысла, наверное, не имеет.

2 комментария:

  1. Очень здорово! Не могли бы в следующие уроки включить рассмотрение панели BACKSTAGE.( как заблокировать некоторые функции, например "Сохранить как" и т.п. Как создать свою функцию, например выйти из Excel / Word с сохранением или (что ещё лучше), как закрыть все открытые книги Excel с сохранением, за исключением активной книги? Заранее благодарен. Василий.

    ОтветитьУдалить
    Ответы
    1. Я пока сам ещё не разбирался с BACKSTAGE. Но, видимо, функции там отключаются аналогично ленте. А насчёт функций, сохраняющих открытые книги и прочее - это уже по теме макросов. Если буду разбираться с BACKSTAGE, обязательно напишу урок, но это не в ближайшее время.

      Удалить