Архитектура смарт-тега
Обновлен: Ноябрь 2007
Применение |
---|
Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office. Проекты уровня документа
Проекты уровня приложения
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Visual Studio Tools for Office предоставляет гибкую объектную модель смарт-тегов, которая позволяет быстро добавлять смарт-теги в документы Microsoft Office Word и книги Microsoft Office Excel. В сложных сценариях можно также создать настраиваемый распознаватель смарт-тегов и получить доступ к данным смарт-тегов.
Дополнительные сведения о смарт-тегах Visual Studio Tools for Office см. в разделе Общие сведения о смарт-тегах.
Общие сведения об объектной модели
Объектная модель для смарт-тегов Visual Studio Tools for Office предоставляет отдельные классы для смарт-тегов и действий, которые они выполняют. Примеры кода, которые демонстрируют способы добавления смарт-тегов Visual Studio Tools for Office в документ, см. в разделах Практическое руководство. Добавление смарт-тегов в документы Word и Практическое руководство. Добавление смарт-тегов в книги Excel.
Смарт-теги
Смарт-тегом Visual Studio Tools for Office может являться экземпляр любого класса, производный от абстрактного класса SmartTagBase. Visual Studio Tools for Office включает два класса, реализующие абстрактный класс SmartTagBase: Microsoft.Office.Tools.Word.SmartTag и Microsoft.Office.Tools.Excel.SmartTag. До тех пор пока не требуется создавать собственный распознаватель смарт-тегов, можно использовать экземпляры этих классов во время добавления смарт-тегов в документ.
Класс SmartTagBase выполняет следующие функции.
Свойства Terms и Expressions, которые содержат узнаваемые термины для смарт-тегов. Чтобы задать простую строку, добавьте ее в свойство Terms. Чтобы задать сложную строку, добавьте регулярное выражение, описывающее строку, в свойство Expressions.
Свойство Actions, содержащее действия, выполняемые при выборе смарт-тега пользователем.
Распознаватель смарт-тегов по умолчанию, который сравнивает пользовательский ввод с содержимым свойств Terms и Expressions.
Действия
Когда пользователь выбирает смарт-тег, он может выполнить одно или несколько действий, специфичных для данного смарт-тега. Каждое действие представлено экземпляром класса Microsoft.Office.Tools.Word.Action или Microsoft.Office.Tools.Excel.Action. Эти классы предоставляют события BeforeCaptionShow и Click:
Событие BeforeCaptionShow происходит сразу после нажатия пользователем значка смарт-тега и перед отображением меню смарт-тега. Обработайте это событие, если необходимо изменить заголовок действия в меню смарт-тега во время выполнения.
Событие Click происходит сразу после нажатия пользователем заголовка действия в меню смарт-тега. Обработайте это событие для выполнения кода, когда пользователь щелкает действие.
Обработчики для этих событий получают Microsoft.Office.Tools.Excel.ActionEventArgs (для Excel) или Microsoft.Office.Tools.Word.ActionEventArgs (для Word), что обеспечивает доступ к распознанному тексту и месту расположения текста.
Поведение по умолчанию при распознавании текста
Когда пользователь вводит текст в документе или рабочей книге, Word и Excel создают из текста список маркеров. Распознаватель смарт-тегов по умолчанию, содержащийся в классе SmartTagBase, получает список маркеров и полный введенный пользователем текст. Распознаватель по умолчанию определяет смарт-теги, если соблюдено одно из следующих условий:
Одна из строк в свойстве Terms точно совпадает с одним из маркеров в документе или рабочей книге.
Одно из регулярных выражений в свойстве Expressions совпадает с полным введенным пользователем текстом.
Во время набора текста пользователем приложения Word и Excel анализируют строки, содержащие внедренные пробелы, или строки, содержащие буквы, числа и символы, и разделяют их на отдельные маркеры. Например, если пользователь ввел "отчет по продажам", Word и Excel создадут маркеры "продажам" и "отчет". Аналогично, если пользователь ввел "продажи2005", Word и Excel создадут маркеры "продажи" и "2005".
Если требуется, чтобы смарт-тег распознавал строку, содержащую встроенные пробелы или строку с сочетанием букв, чисел и символов, не добавляйте строку в свойство Terms. Вместо этого добавьте регулярное выражение, которое описывает строку, в свойство Expressions или создайте собственный распознаватель, который будет выполнять поиск строки.
Создание распознавателя смарт-тегов
Чтобы создать свой собственный распознаватель смарт-тегов, унаследуйте новый класс от SmartTagBase, Microsoft.Office.Tools.Word.SmartTag или Microsoft.Office.Tools.Excel.SmartTag и переопределите метод Recognize.
Во время реализации Recognize необходимо выполнить поиск терминов смарт-тега в тексте и вручную занести смарт-теги в Word или Excel, если термин будет найден. Примеры создания распознавателей смарт-тегов Visual Studio Tools for Office см. в разделах Практическое руководство. Создание в приложении Word смарт-тегов с настраиваемыми распознавателями и Практическое руководство. Создание смарт-тегов с настраиваемыми распознавателями в Excel.
Процесс занесения смарт-тегов вручную зависит от класса, от которого был унаследован смарт-тег. В следующей таблице перечислены различные варианты занесения смарт-тега.
Класс от которого производится наследование смарт-тега |
Как занести смарт-тег |
---|---|
Вызовите метод SmartTag.PersistTag. |
|
Вызовите метод SmartTag.PersistTag. |
|
Вызовите метод CommitSmartTag параметра site метода Recognize. Параметр site является объектом, реализующим интерфейс ISmartTagRecognizerSite. Интерфейс доступен после добавления ссылки на библиотеку типов Microsoft Smart Tags 2.0 в проект. Дополнительные сведения см. в документации Smart Tag SDK в библиотеке MSDN. |
Сохранение данных в контейнер свойств и извлечение данных из него
Смарт-теги могут хранить данные в коллекции пар "ключ-значение", которые известны под названием "контейнер свойств". Каждое значение и ключ в контейнере свойств является строкой.
Смарт-теги Visual Studio Tools for Office предоставляют два способа доступа к контейнеру свойств.
Можно обработать события Click или BeforeCaptionShow класса Microsoft.Office.Tools.Word.Action или Microsoft.Office.Tools.Excel.Action и использовать свойство Properties параметра аргумента события для записи или чтения из контейнера свойств смарт-тегов. Свойство Properties возвращает объект, реализующий интерфейс ISmartTagProperties. Интерфейс ISmartTagProperties доступен после добавления ссылки на библиотеку типов Microsoft Smart Tags 2.0 в проект.
Можно реализовать метод Recognize в классе, который является производным от класса SmartTagBase, Microsoft.Office.Tools.Word.SmartTag или Microsoft.Office.Tools.Excel.SmartTag. Параметр site данного метода предоставляет метод GetNewPropertyBag, возвращающий объект ISmartTagProperties, который можно использовать для записи или чтения из контейнера свойств смарт-тегов.
Примеры записи в контейнер свойств и считывания из него в см. в разделах Практическое руководство. Создание в приложении Word смарт-тегов с настраиваемыми распознавателями и Практическое руководство. Создание смарт-тегов с настраиваемыми распознавателями в Excel.
Регулярные выражения и контейнер свойств
После назначения регулярного выражения смарт-тегу Visual Studio Tools for Office, распознаватель по умолчанию, добавляет пару "код-значение" для каждой захваченной группы регулярного выражения в контейнер свойств смарт-тега.
Пример, демонстрирующий это, см. в разделе Пошаговое руководство. Создание смарт-тега с помощью настройки уровня документа.. Дополнительные сведения о захваченных группах в регулярных выражениях, см. в разделах Конструкции группирования и Классы регулярных выражений.
См. также
Задачи
Практическое руководство. Разрешение смарт-тегов в Word и Excel
Практическое руководство. Добавление смарт-тегов в документы Word
Практическое руководство. Добавление смарт-тегов в книги Excel
Практическое руководство. Создание в приложении Word смарт-тегов с настраиваемыми распознавателями
Практическое руководство. Создание смарт-тегов с настраиваемыми распознавателями в Excel
Пошаговое руководство. Создание смарт-тега с помощью настройки уровня документа.
Пошаговое руководство. Создание смарт-тега с помощью надстройки уровня приложения