Документы в WPF
Windows Presentation Foundation (WPF) предлагает широкий диапазон свойств документа, которые позволяют создавать содержимое высокого качества, который позволяет проще доступа и чтения, чем в предыдущих поколениях Windows. В дополнение к расширенным возможностям и повышенному качеству WPF предоставляет интегрированные службы для отображения, упаковки и обеспечения безопасности документов. В этом разделе содержатся вводные сведения о типах и упаковке документов WPF.
Типы документов
WPF разделяет документы на две основные категории на основе их предполагаемого использования; Эти категории документов называются «документы фиксированного формата» и «документы нефиксированного формата.»
Документы фиксированного формата предназначены для сфер применения, требующих точного представления Режим WYSIWYG (режим точного отображения) независимо от используемого дисплея или принтера. Документы фиксированного формата используются в компьютерной верстке, текстовой обработке и макетах форм, где строгое соответствие дизайну исходной страницы имеет критическое значение. При использовании такого макета документ фиксированного формата сохраняет точное расположение элементов содержимого независимо от используемого устройства изображения или печати. Так, страница документа фиксированного формата, отображаемая на дисплее 96 точек на дюйм, будет совершенно одинаково отображаться на лазерном принтере 600 точек на дюйм и фотонаборной машине 4800 точек на дюйм. Макет страницы остается неизменным во всех случаях, хотя качество документа повышается с учетом возможностей устройства.
Для сравнения: документы нефиксированного формата предназначены для повышения удобства просмотра и чтения; их лучше всего использовать, когда в работе с документом важнее всего удобство чтения. Вместо того чтобы использовать какой-либо определенный макет, документы нефиксированного формата динамически корректируют и перемещают содержимое с учетом переменных времени выполнения, таких как размер окна, разрешение устройства и дополнительные пользовательские настройки. Веб-страница — это простой пример документа нефиксированного формата, содержимое на которой динамически форматируется, чтобы уместиться в окне. Документы нефиксированного формата оптимизируют просмотр и чтение для пользователя в зависимости от среды выполнения. Например, один и тот же документ нефиксированного формата будет динамически переформатирован, чтобы обеспечить оптимальную читаемость на дисплее высокого разрешения 19 дюймов или небольшом экране PDA размером 2 x 3 дюйма. Кроме того, документы нефиксированного формата имеют несколько встроенных возможностей, включая поиск, режимы просмотра, оптимизирующие читаемость, и возможность менять размер и внешний вид шрифта. См. иллюстрации, примеры и подробное описание документов нефиксированного формата в разделе Общие сведения о документах нефиксированного формата.
Элементы управления документами и макеты текста
.NET Framework предоставляет набор встроенных элементов управления, которые упрощают использование документы фиксированного формата, документы нефиксированного формата и основного текста в приложении. Отображение содержимого документа фиксированного поддерживается при использовании DocumentViewer элемента управления. Отображение содержимого документа нефиксированного поддерживается трех различных элементов управления: FlowDocumentReader, FlowDocumentPageViewer, и FlowDocumentScrollViewer которые соответствуют разным пользовательским сценариям (см. разделы ниже). Другие элементы управления WPF предоставляют упрощенную разметку для стандартных способов использования текста (см. раздел Текст в пользовательском интерфейсе ниже).
Элемент управления документом фиксированного формата DocumentViewer
DocumentViewer Элемент управления предназначен для отображения FixedDocument содержимого. DocumentViewer Управления предоставляет интуитивно понятный пользовательский интерфейс, который предоставляет встроенную поддержку для общих операций, включая вывод на печать, копирование в буфер обмена, масштабирование и возможности поиска текста. Элемент управления предоставляет доступ к страницам содержимого через знакомый механизм прокрутки. Как и все WPF элементов управления, DocumentViewer поддерживает полное или частичное изменение стиля, который включает элемент управления можно интегрировать в практически любое приложение или среду.
DocumentViewer предназначен для отображения содержимого в режиме только для чтения; редактирование и изменение содержимого не поддерживается и не поддерживается.
Элементы управления документа нефиксированного формата
Примечание. Дополнительные сведения о функциях документов нефиксированного формата и способах их создания см. в разделе Общие.
Отображение содержимого документа нефиксированного поддерживается три элемента управления: FlowDocumentReader, FlowDocumentPageViewer, и FlowDocumentScrollViewer.
FlowDocumentReader
FlowDocumentReader включает функции, которые позволяют пользователю динамически переключаться между разными режимами просмотра, включая постраничный (страницы в a-time), две страницы в раз (книжный формат) режиме непрерывной прокрутки (без дна) и режим просмотра. Дополнительные сведения об этих режимах просмотра см. в разделе FlowDocumentReaderViewingMode. Если возможность динамически переключаться между режимами просмотра не требуется FlowDocumentPageViewer и FlowDocumentScrollViewer предоставляют облегченные средства просмотра содержимого, исправленных в определенном режиме просмотра.
FlowDocumentPageViewer и FlowDocumentScrollViewer
FlowDocumentPageViewer Отображает содержимое в страницы во время режима просмотра, а FlowDocumentScrollViewer отображает содержимое в режиме непрерывной прокрутки. Оба FlowDocumentPageViewer и FlowDocumentScrollViewer зафиксированы в определенном режиме просмотра. Сравнить с FlowDocumentReader, которое включает функции, которые позволяют пользователю динамически переключаться между разными режимами просмотра (предоставленный FlowDocumentReaderViewingMode перечисления), однако является более ресурсоемким, чем FlowDocumentPageViewer или FlowDocumentScrollViewer.
По умолчанию вертикальная полоса прокрутки отображается всегда, а горизонтальная полоса прокрутки становится видимой при необходимости. Значение по умолчанию UI для FlowDocumentScrollViewer не включает панель инструментов; Однако IsToolBarVisible свойство может использоваться для включения встроенной панели инструментов.
Текст в пользовательском интерфейсе
Текст можно добавлять не только в документы, но и использовать в интерфейсе приложений, например в формах. WPF содержит несколько элементов управления для рисования текста на экране. Каждый элемент управления предназначен для своего сценария и имеет собственный список функций и ограничений. В общем случае TextBlock элемент должен использоваться при необходимости, например короткого предложения в ограниченная поддержка текста UI . Label может использоваться, если требуется Минимальная текстовая поддержка. Дополнительные сведения см. в разделе Общие сведения о классе TextBlock.
Упаковка документов
System.IO.Packaging API Предоставляет эффективные средства для организации данных приложения, содержимого документов и связанных ресурсов в одном контейнере, который обеспечивает простой доступ, переносимость и легко распространять. ZIP-файл является примером Package может хранить несколько объектов как единое целое. Упаковка API предоставления по умолчанию ZipPackage реализации, разработанные с применением стандартом Open Packaging Conventions с архитектурой файлов XML и ZIP. API упаковки WPF упрощает создание пакетов, хранение в них объектов и осуществление доступа к таким объектам. Объект, хранящийся в Package называется PackagePart («часть»). Пакеты также могут включать подписанные цифровые сертификаты, с помощью которых можно идентифицировать создателя части и убедиться, что содержимое пакета не было изменено. Пакеты также включают PackageRelationship функция, которая позволяет добавил в пакет и связанный с определенными частями, не меняя содержимое существующих частей дополнительные данные. Службы пакета также поддерживают Microsoft Windows Rights Management (RM).
Архитектура пакета WPF лежит в основе ряда ключевых технологий:
XPS документы, удовлетворяющие Формат XPS (XML Paper Specification).
Документы открытого XML-формата Microsoft Office "12" (.docx).
Пользовательские форматы хранения для собственного приложения.
В зависимости от API упаковки, XpsDocument разработан специально для хранения WPF документов с фиксированным содержимым. XpsDocument Является полностью автономным документом, который можно открыть в средстве просмотра, отображаются в DocumentViewer элемента управления, направляться в очередь печати или вывести непосредственно на XPS-совместимого принтера.
Следующие разделы содержат дополнительные сведения о Package и XpsDocument API в состав WPF.
Компоненты пакета
Интерфейсы API упаковки WPF позволяют упорядочить данные и документы приложения в единый портативный блок. ZIP-файл является одним из наиболее распространенных типов пакетов и типом пакета по умолчанию, предоставляемым WPF. Package сам является абстрактным классом, из которого ZipPackage реализуется с помощью открытых стандартных архитектуру файл XML и ZIP. Open Использует метод ZipPackage для создания и использования ZIP-файлов по умолчанию. Пакет может содержать три основных типа элементов:
PackagePart | Содержимое приложения, данные, документы и файлы ресурсов. |
PackageDigitalSignature | [Сертификат X.509] для идентификации, аутентификации и проверки. |
PackageRelationship | Добавленные сведения о пакете или определенной части. |
PackageParts
Объект PackagePart («часть») — это абстрактный класс, который ссылается на объект, хранящийся в Package. В ZIP-файле части пакета соответствуют отдельным файлам, хранящимся в ZIP-файле. ZipPackagePart предоставляет реализацию по умолчанию для сериализуемых объектов, хранящихся в ZipPackage. Как и в файловой системе, части, которые содержатся в пакете, хранятся в иерархическом каталоге или организованы по папкам. С помощью WPF API упаковки приложений можно записать, хранить и считывать несколько PackagePart объекты, используя один контейнер ZIP-файла.
PackageDigitalSignatures
В целях безопасности PackageDigitalSignature («цифровая подпись») можно связать с частями в составе пакета. Объект PackageDigitalSignature включает сертификат [509], предоставляет две функции:
Идентификация и проверка подлинности создателя части.
Проверка, не была ли часть изменена.
Цифровая подпись не защищает часть от изменения, но проверка цифровой подписи завершится ошибкой, если часть изменяется каким-либо образом. В таком случае приложение может предпринять соответствующие действия, например не допустить открытия части или уведомить пользователя об изменении (и, следовательно, ненадежности) части.
PackageRelationships
Объект PackageRelationship («отношение») предоставляет механизм для связи дополнительной информации с фрагментом внутри пакета или пакета. Отношение — это возможность на уровне пакета, позволяющая связывать дополнительную информацию с частью, не меняя фактического содержимого части. Вставлять новые данные непосредственно в содержимое части, как правило, нецелесообразно:
Фактический тип части и схема содержимого неизвестны.
Даже если эти параметры известны, схема содержимого может не обеспечивать средства для добавления новых данных.
Часть может быть защищена от изменений цифровой подписью или шифрованием.
Отношения пакета предоставляют видимые средства добавления дополнительной информации в отдельные части или весь пакет и создания соответствующих связей между этой информацией и объектами. Отношения пакетов используются для решения двух основных задач:
Определение отношений зависимости между частями.
Определение информационных отношений, добавляющих примечания или другие данные, связанные с частью.
Объект PackageRelationship предоставляет средства быстрого и удобного определения зависимостей и добавления других сведений, связанных с частью пакета или пакет в целом.
Отношения зависимости
Отношения зависимости используются для описания зависимостей между частями. Например, пакет может содержать HTML-часть, которая включает один или несколько тегов изображений <img>. Теги изображений относятся к изображениям, которые хранятся как части внутри пакета или вне его (например, части, доступные через Интернет). Создание PackageRelationship связанный с файлом HTML, делает обнаружение и доступ к зависимые ресурсы быстро и легко. Браузер или приложение средства просмотра может осуществлять прямой доступ к отношениям частей и сразу приступать к сборке зависимых ресурсов, даже не зная схемы и не выполняя синтаксического анализа документа.
Информационные отношения
Аналогичную примечанию или заметке, PackageRelationship также может использоваться для хранения других типов данных, которые будут связаны с частью без необходимости фактического изменения содержимого части.
XPS-документы
Формат XPS (XML Paper Specification) документ является пакет, содержащий один или несколько фиксированных документов и все ресурсы и сведения, необходимые для подготовки к просмотру. XPS также является собственным Windows Vista формат файла очереди печати. XpsDocument Хранится в стандартном наборе данных ZIP и может включать комбинацию XML и двоичных компонентов, таких как файлы изображений и шрифтов. PackageRelationships используются для определения зависимостей между содержимым и ресурсами, необходимыми для полного отображения документа. XpsDocument Подход обеспечивает единый, высококачественный документ решение, которое поддерживает многократного использования:
Чтение, запись и хранение содержимого и ресурсов документов фиксированного формата в одном портативном документе с возможностью удобного распространения.
Отображение документов в приложении средства просмотра XPS.
Вывод документов в собственном формате вывода в очередь на печать Windows Vista.
Перенаправление документов непосредственно на совместимый с XPS принтер.