Элементы управления содержимым
Элементы управления содержимым позволяют разрабатывать документы и шаблоны, которые имеют следующие функции:
Пользовательский интерфейс с управляемым вводом, подобным вводу, который используется в формах.
Ограничения, запрещающие пользователям править защищенные разделы документа или шаблона.Дополнительные сведения см. в разделе Protecting Parts of Documents by Using Content Controls.
Привязка данных к источнику данных.Дополнительные сведения см. в разделе Binding Data to Content Controls.
Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.
Для просмотра связанных демонстрационных видеороликов перейдите по ссылке Привязка данных к элементам управления содержимым Word 2007 с помощью Visual Studio Tools для системы Office (3.0) (на английском языке).
Общие сведения о элементах управления содержимым
Элементы управления содержимым предоставляют пользовательский интерфейс, оптимизированный как для пользовательского вывода, так и для ввода.При добавлении элемента управления содержимым в документ, он определяется границей, заголовком и временным текстом, который может предоставлять инструкции пользователю.Граница и заголовок элемента управления не появляются в версиях документа для печати.
Например, если необходимо, чтобы пользователь ввел дату в раздел документа, можно добавить в документ элемент управления выбора даты.При нажатии на элемент управления, появляется стандартный управляющий элемент выбора даты.Также можно задать свойства элемента управления для настройки выводимого регионального календаря и для определения формата даты.После того, как пользователь выберет дату, пользовательский интерфейс элемента управления скрывается. При печати документа появляется только дата.
Элементы управления содержимым также помогают выполнять следующее:
Предотвращать правку или удаление частей документа пользователями.Это может оказаться полезным, если пользователи должны иметь возможность читать, но не править сведения в документе, или если пользователи должны иметь возможность править элементы управления содержимым, но не удалять их.
Выполнять привязку документа или шаблона к данным.Можно привязать элементы управления содержимым к полям базы данных, управляемым объектам в .NET Framework, XML-элементам, которые хранятся в документе, и к другим источникам данных.
В проектах уровня документа можно добавлять элементы управления содержимым в документ во время разработки или во время выполнения.В проектах уровня приложения элементы управления содержимым добавляются в любой открытый элемент во время выполнения.Дополнительные сведения см. в разделе Практическое руководство. Добавление элементов управления содержимым в документы Word.
Примечание |
---|
Элементы управления содержимым можно использовать только в документах, сохраненных в формате Open XML.Элементы управления содержимым нельзя использовать в документах, сохраненных в формате Word 97-2003 с расширением DOC. |
Типы элементов управления содержимым
Существуют девять различных типов элементов управления содержимым, которые можно добавлять в документы.Большинство элементов управления имеет соответствующий тип в пространстве имен Microsoft.Office.Tools.Word.Также можно использовать универсальный шаблонContentControl, который может представлять любой из доступных элементов управления содержимым.Пошаговое руководство по использованию любого доступного элемента управления содержимым, см. в разделе Пошаговое руководство. Создание шаблона с помощью элементов управления содержимым.
Коллекция стандартных блоков.
Коллекция стандартных блоков позволяет пользователям выбирать блоки для вставки в документ из списка стандартные блоки документа.Стандартный блок — это часть содержимого, созданная для многократного использования, например общий титульный лист, отформатированная таблица или заголовок.Дополнительные сведения см. в разделе тип BuildingBlockGalleryContentControl.Дополнительные сведения о стандартных блоках документа см. в разделе Новые возможности для разработчиков в Word 2007.
Check Box
"Флажок" представляет собой элемент пользовательского интерфейса, отображающий одно из двух состояний: выделено или пусто.
В отличие от других типов элементов управления содержимым, Visual Studio Tools for Office (cреда выполнения) не предоставляет специальный тип, представляющий элемент управления содержимым "флажок".Иначе говоря, тип CheckBoxContentControl не существует.Тем не менее, можно создать элемент управления содержимым "флажок", программно добавив в документ универсальный шаблон ContentControl.Дополнительные сведения см. в разделе Элементы управления checkbox в проектах слова.
Combo Box
Поле со списком используется для вывода списка элементов, которые могут выбирать пользователи.В отличие от раскрывающегося списка, поле со списком позволяет пользователям добавлять собственные элементы.Дополнительные сведения см. в разделе тип ComboBoxContentControl.
Управляющий элемент выбора даты.
Управляющий элемент выбора даты предоставляет календарь пользовательского интерфейса для выбора даты.Календарь появляется, когда пользователь щелкает стрелку раскрывающегося списка элемента управления.Можно использовать региональные календари и различные форматы даты.Дополнительные сведения см. в разделе тип DatePickerContentControl.
Раскрывающийся список
Раскрывающийся список используется для вывода списка элементов, которые могут выбирать пользователи.В отличие от поля со списком, раскрывающийся список не позволяет пользователям добавлять или изменять элементы.Дополнительные сведения см. в разделе тип DropDownListContentControl.
Группа
Элемент управления группой определяет защищенную область документа, которую пользователи не смогут изменять или удалять.Элемент управления группой может содержать любые элементы документа, в том числе текст, таблицы, графики и другие элементы управления содержимым.Дополнительные сведения см. в разделе тип GroupContentControl.
Рисунок
Элемент управления рисунка выводит изображение.Изображение можно указать во время разработки или выполнения. Пользователи также могут щелкнуть элемент управления, чтобы выбрать изображение для вставки в документ.Дополнительные сведения см. в разделе тип PictureContentControl.
Текст в формате RTF
Элемент управления текстом в формате RTF содержит текст или другие элементы, такие как таблицы, картинки или другие элементы управления содержимым.Дополнительные сведения см. в разделе тип RichTextContentControl.
Обычный текст
Элемент управления обычным тестом содержит текст.Элемент управления обычным текстом не может содержать других элементов, таких как таблицы, картинки или иных элементов управления содержимым.Кроме того, весь текст в элементе управления обычным текстом одинаково отформатирован.Например, при выделении курсивом одного слова в предложении, находящемся в элементе управления обычным тестом, курсивом выделяется весь текст в элементе управления.Дополнительные сведения см. в разделе тип PlainTextContentControl.
Универсальный шаблон элемента управления содержимым
Универсальный шаблон элемента управления содержимым является объектом ContentControl, который может представлять любой из доступных типов элементов управления содержимым.Можно изменить поведение объекта ContentControl, так, чтобы оно было похоже на поведение другого типа элемента управления, с помощью свойства Type.Например, при создании объекта ContentControl, который представляет элемент управления обычным текстом, его можно изменить во время выполнения таким образом, чтобы он стал выполнять функции поля со списком.
Можно создать объекты ContentControl только во время выполнения, а не во время разработки.Дополнительные сведения см. в разделе Практическое руководство. Добавление элементов управления содержимым в документы Word.
Общие функции элементов управления содержимым
Большинство элементов управления делает общим набор элементов, которые можно использовать для выполнения общих заданий.В следующей таблице описываются некоторые задачи, которые можно выполнить, используя эти элементы.
Для данной задачи: |
Действия: |
---|---|
Возвратите или задайте текст, отображаемый в элементе управления. |
Используйте свойство Text.
Примечание
Типы PictureContentControl и ContentControl не имеют этого свойства.
|
Возвратите или задайте временный текст, отображаемый в элементе управления до тех пор, пока пользователь не изменит элемент управления, элемент управления не будет заполнен данными из источника данных или содержимое элемента управления не будет удалено. |
Используйте свойство PlaceholderText.
Примечание
Тип PictureContentControl не имеет этого свойства.
|
Возвратите или задайте заголовок, который отображается на границе элемента управления содержимым при нажатии на него пользователем. |
Используйте свойство Title. |
Автоматически удалите элемент управления из документа после того, как пользователь изменит элемент управления(текст в элементе управления остается в документе). |
Используйте свойство Temporary. |
Выполните код, когда пользователь щелкает мышью внутри элемента управления содержимым, или при программном перемещении курсора внутрь элемента управления содержимым. |
Обработайте событие Entering элемента управления. |
Выполните код, когда пользователь щелкает мышью за пределами элемента управления содержимым, или при программном перемещении курсора за пределы элемента управления содержимым. |
Обработайте событие Exiting элемента управления. |
Выполните код после добавления в документ элемента управления содержимым в результате операции отмены или повтора. |
Обработайте событие Added элемента управления. |
Выполните код непосредственно перед удалением элемента управления содержимым из документа. |
Обработайте событие Deleting элемента управления. |
Защита частей документов с помощью элементов управления содержимым
При защите части документа, пользователям запрещается изменять или удалять содержимое в этой части документа.Существуют несколько способов защиты частей документа с помощью элементов управления содержимым.
Если область, которую следует защитить, находится внутри элемента управления, можно использовать свойства элемента управления содержимым, чтобы запретить пользователям правку или удаление элемента управления:
Свойство LockContents запрещает правку содержимого пользователями.
Свойство LockContentControl запрещает удаление элемента управления пользователями.
Если область, которую следует защитить, находится вне элемента управления, или, если следует защитить область, которая содержит элементы управления содержимым и другие типы содержимого, можно поместить всю область в GroupContentControl.В отличие от остальных элементов управления содержимым, элемент управления GroupContentControl не предоставляет видимого для пользователя пользовательского интерфейса.Его единственное предназначение — определять область, которую пользователи не смогут править.
Примечание |
---|
При создании GroupContentControl, который содержит внедренные элементы управления содержимым, последние не защищаются автоматически.Необходимо использовать свойство LockContents каждого внедренного элемента управления, чтобы запретить пользователям править их содержимое. |
Дополнительные сведения об использовании элемента управления содержимым для защиты частей документов, см. раздел Практическое руководство. Защита частей документов с помощью элементов управления содержимым.
Привязка данных к элементам управления содержимым
Можно отобразить данные в документах с помощью привязки элемента управления содержимым к источнику данных.При обновлении источника данных, элемент управления содержимым отражает изменения.Также можно снова сохранить изменения в источник данных.
Элементы управления содержимым предоставляют следующие возможности привязки данных:
Можно привязывать элементы управления содержимым к полям баз данных или управляемым объектам с помощью одинаковых моделей привязки данных, таких как Windows Forms.
Элементы управления содержимым можно связать с элементами в XML-частях (также называемых пользовательские XML-части), которые внедрены в документ.
Общие сведения о привязке элементов управления ведущего приложения в решениях Office к данным см. в разделе Привязка данных к элементам управления в решениях Office.
Использование модели привязки данных Windows Forms
Большинство элементов управления поддерживают простую модель привязки данных, которую использует Windows Forms. Простая привязка данных означает, что элемент управления привязан к одному элементу данных, например, к значению в столбце таблицы данных.Дополнительные сведения см. в разделе Связывание данных и Windows Forms.
В проектах уровня документа можно привязать данные к элементам управления содержимым с помощью окна Источники данных в среде Visual Studio.Дополнительные сведения о добавлении в документы элементов управления привязки данных, см. разделы Практическое руководство. Заполнение документов данными из базы данных и Практическое руководство. Заполнение документов данными из объектов.
В следующей таблице перечислены элементы управления содержимым, которые можно привязать к каждому типу данных в окне Источники данных.
Тип данных |
Элемент управления содержимым по умолчанию |
Другие элементы управления содержимым, которые можно привязать к данным этого типа |
---|---|---|
Массив Byte |
None |
В проектах уровня документа и проектах уровня приложения элемент управления содержимым можно привязать к источнику данных программно с помощью метода Add() свойства элемента управления DataBindings.При этом передайте строку Текст параметру propertyName метода Add().Свойство Text является свойством привязки данных элемента управления содержимым по умолчанию.
Элементы управления содержимым также поддерживают двухстороннюю привязку данных, при которой изменения в элементе управления обновляются к источнику данных.Дополнительные сведения см. в разделе Практическое руководство. Обновление источника данных с помощью данных из элемента управления ведущего приложения.
Примечание |
---|
Элементы управления содержимым не поддерживают сложную привязку данных.Если привязать DropDownListContentControl или ComboBoxContentControl к источнику данных, используя модель данных Windows Forms, при щелчке на элемент управления, пользователи увидят только одно значение.Если следует привязать эти элементы управления к набору значений данных, из которых могут выбирать пользователи, можно привязать эти элементы управления к элементам в пользовательской XML-части. |
Привязка элементов управления содержимым к пользовательским XML-частям
Можно привязать некоторые элементы управления содержимым к элементам в пользовательских XML-частях, которые внедрены в документ.Дополнительные сведения о настраиваемых XML-частях см. в разделе Общие сведения о пользовательских XML-частях.
Чтобы привязать элемент управления содержимым к элементу в пользовательской XML-части, используйте свойство XMLMapping элемента управления.В следующем примере кода показано как привязать PlainTextContentControl к элементу Price под узлом Product в пользовательской XML-части, которая уже добавлена в документ.
plainTextContentControl1.XMLMapping.SetMapping("/Product/Price")
plainTextContentControl1.XMLMapping.SetMapping("/Product/Price", String.Empty, null);
Пошаговое руководство, демонстрирующее более подробно привязку элементов управления содержимым к пользовательским XML-частям, см. в разделе Пошаговое руководство. Привязка элементов управления содержимым к пользовательским XML-частям.
При привязке элемента управления содержимым к пользовательской XML-части, автоматически включается двусторонняя привязка данных.Если пользователь правит текст в элементе управления, соответствующие XML-элементы автоматически обновляются.Аналогично, если значения элемента в пользовательских XML-частях изменяются, элементы управления содержимым, привязанные к XML-элементам, отобразят новые данные.
Можно привязать следующие типы элементов управления содержимым к пользовательским XML-частям:
События привязки данных для элементов управления содержимым
Все элементы управления содержимым предоставляют набор событий, которыми можно управлять, чтобы выполнить задачи, связанные с данными, такие как проверка текста в элементе управления на соответствие определенным критериям перед обновлением источника данных.В следующей таблице перечислены события элементов управления, которые относятся к привязке данных.
Задача |
Событие |
---|---|
Выполните код непосредственно перед тем, как Word автоматически обновит текст в элементе управления содержимым, который привязан к пользовательской XML-части. |
|
Выполните код непосредственно перед тем, как Word автоматически обновит данные в пользовательской XML-части, которая привязана к элементу управления (то есть, после изменения текста в элементе управления содержимым). |
|
Выполните собственный код для проверки содержимого элемента управления в соответствии с пользовательскими критериями. |
|
Выполните код после успешной проверки содержимого элемента управления. |
Ограничения элементов управления содержимым
При использовании элементов управления содержимым в проектах Office следует учитывать следующие ограничения.
Различия в поведении между временем разработки и временем выполнения
Многие из ограничений, который налагает Microsoft Office Word на элементы управления содержимым во время выполнения, не налагаются во время разработки.При разработке пользовательского интерфейса решения Visual Studio уровня документа изменяйте элементы управления содержимым только теми способами, которые поддерживаются во время выполнения.
При изменении элемента управления содержимым во время разработки способом, который данный элемент управления не поддерживает во время выполнения, разработчик Visual Studio не предупредит о изменениях, которые не поддерживаются.Однако, при отладке или выполнении проекта, или при сохранении и последующем открытии проекта, Word выведет сообщение об ошибке и запрос на разрешение исправить документ.При исправлении документа, Word удаляет все содержимое, которое не поддерживается и форматирует из элемента управления.
Например, Word не запрещает добавлять во время разработки таблицу в PlainTextContentControl.Однако, так как объекты PlainTextContentControl не могут содержать таблиц во время выполнения, при открытии документа Word выведет сообщение об ошибке.
Также обратите внимание, что многие свойства, которые определяют поведение элементов управления содержимым не оказывают влияния во время разработки.Например, если задать свойству LockContents элемента управления значение True во время разработки, можно править текст в элементе управления в конструкторе Visual Studio.Это свойство запрещает пользователям править элемент управления только во время выполнения.
Ограничения событий
Элементы управления содержимым не предоставляют события, которое вызывается при изменении текста или других элементов управления пользователем. Например, не существует события, которое вызывается, если пользователь выбирает различные элементы в DropDownListContentControl или в ComboBoxContentControl.
Чтобы определить, когда пользователь правит содержимое элемента управления содержимым, можно привязать элемент управления к пользовательской XML-части, и затем обработать событие StoreUpdating.Это событие вызывается, когда пользователь изменяет содержимое элемента управления, которое привязано к пользовательской XML-части.Пошаговое руководство, демонстрирующее более подробно привязку элементов управления содержимым к пользовательской XML-части, см. в разделе Пошаговое руководство. Привязка элементов управления содержимым к пользовательским XML-частям.
Элементы управления checkbox в проектах слова
В Word 2010 появился новый тип элемента управления содержимым, представляющий флажок.Однако Visual Studio Tools for Office (cреда выполнения) не предоставляет соответствующего типа CheckBoxContentControl для использования в проектах Office.Создание элемента управления содержимым с галочкой в Word 2013 или проекте слова 2010 использовать метод AddContentControl для создания объекта Microsoft.Office.Tools.Word.ContentControl и передать значение методу wdContentControlCheckBox для идентификации элемента управления содержимым.В следующем примере кода показано, как это сделать.
Me.Paragraphs(1).Range.InsertParagraphBefore()
Me.Paragraphs(1).Range.Select()
Dim checkBoxControl1 As Microsoft.Office.Tools.Word.ContentControl =
Me.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox)
checkBoxControl1.Checked = True
this.Paragraphs[1].Range.InsertParagraphBefore();
this.Paragraphs[1].Range.Select();
Microsoft.Office.Tools.Word.ContentControl checkBoxControl1 =
this.Controls.AddContentControl("checkBoxControl1", Word.WdContentControlType.wdContentControlCheckBox);
checkBoxControl1.Checked = true;
См. также
Задачи
Практическое руководство. Добавление элементов управления содержимым в документы Word
Пошаговое руководство. Создание шаблона с помощью элементов управления содержимым
Основные понятия
Автоматизация Word с помощью расширенных объектов
Программные ограничения ведущих элементов и элементов управления ведущего приложения