СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Документы. Потоковые документы

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Документы. Потоковые документы»

Документы в WPF

Документы в WPF

Для вывода текста использовался элемент TextBlock. Однако этого элемента недостаточно для создания насыщенных приложений с большими объемами текста со сложным форматированием и встроенными изображениями. Для этого нам надо использовать  документы .
  • Для вывода текста использовался элемент TextBlock. Однако этого элемента недостаточно для создания насыщенных приложений с большими объемами текста со сложным форматированием и встроенными изображениями. Для этого нам надо использовать  документы .
Группы документов в WPF Все документы в WPF деляться на две группы: Фиксированные документы (fixed documents) . Формат и расположение содержимого таких документов фиксировано и не может быть изменено. На различных устройствах с различным разрешением экрана содержимое будет выглядеть одинаково и не будет оптимизировано. Такие документы преимущественно предназначены для печати. Для фиксированных документов WPF использует стандарт XPS (XML Paper Specification) Потоковые документы (flow documents) . Эти документы предназначены для просмотра на экране монитора. А WPF выполняет оптимизацию документа под конкретные параметры среды.

Группы документов в WPF

  • Все документы в WPF деляться на две группы:
  • Фиксированные документы (fixed documents) . Формат и расположение содержимого таких документов фиксировано и не может быть изменено. На различных устройствах с различным разрешением экрана содержимое будет выглядеть одинаково и не будет оптимизировано. Такие документы преимущественно предназначены для печати. Для фиксированных документов WPF использует стандарт XPS (XML Paper Specification)
  • Потоковые документы (flow documents) . Эти документы предназначены для просмотра на экране монитора. А WPF выполняет оптимизацию документа под конкретные параметры среды.
Потоковые документы Потоковые документы в WPF представлены классом FlowDocument, который может включать в себя разлиные потоковые элементы (flow elements). Все эти элементы не являются стандартными элементами управления, как, например, Button или TextBlock, а наследуются от базового класса  FrameworkContentElement  и поэтому поддерживают такие механизмы, как привязка, анимация и другие, но не используют компоновку. 

Потоковые документы

  • Потоковые документы в WPF представлены классом FlowDocument, который может включать в себя разлиные потоковые элементы (flow elements). Все эти элементы не являются стандартными элементами управления, как, например, Button или TextBlock, а наследуются от базового класса  FrameworkContentElement  и поэтому поддерживают такие механизмы, как привязка, анимация и другие, но не используют компоновку. 
Создание потоковых документов Для использования объекта FlowDocument мы должны поместить его в один из контейнеров - FlowDocumentReader, FlowDocumentPageViewer или FlowDocumentScrollViewer. Например:

Создание потоковых документов

Для использования объекта FlowDocument мы должны поместить его в один из контейнеров - FlowDocumentReader, FlowDocumentPageViewer или FlowDocumentScrollViewer. Например:

Содержимое потоковых документов В качестве содержимого FlowDocument принимает один или несколько потоковых элементов. Все эти элементы являются наследниками класса  TextElement  и могут быть блочными (block) и строчными (inline). К блочным элементам относят: Paragraph ,  List ,  Table ,  BlockUIContainer  и  Section .

Содержимое потоковых документов

  • В качестве содержимого FlowDocument принимает один или несколько потоковых элементов. Все эти элементы являются наследниками класса  TextElement  и могут быть блочными (block) и строчными (inline).
  • К блочным элементам относят: ParagraphListTableBlockUIContainer  и  Section .
Элемент Paragraph Элемент Paragraph содержит коллекцию  Inlines , которая в свою очередь включает строковые элементы, причем не только текст. Чтобы параграф отображал текст, надо использовать строчный элемент  Run :

Элемент Paragraph

Элемент Paragraph содержит коллекцию  Inlines , которая в свою очередь включает строковые элементы, причем не только текст. Чтобы параграф отображал текст, надо использовать строчный элемент  Run :

Элемент List Блочный элемент List представляет собой список. Он содержит коллекцию элементов  ListItem , которые и представляют элементы списка . Каждый из элементов  ListItem , в свою очередь, может включать другие блочные элементы, например,  Paragraph.

Элемент List

  • Блочный элемент List представляет собой список. Он содержит коллекцию элементов  ListItem , которые и представляют элементы списка . Каждый из элементов  ListItem , в свою очередь, может включать другие блочные элементы, например,  Paragraph.
Элемент Table Элемент Table организует вывод содержимого в виде таблицы. Он имеет вложенный элемент  TableRowGroup . Этот элемент позволяет задать однообразный вид таблицы и содержит коллекцию строк - элементов  TableRow  (строку таблицы). А каждый элемент TableRow содержит несколько элементов  TableCell  (ячейка таблицы).

Элемент Table

  • Элемент Table организует вывод содержимого в виде таблицы. Он имеет вложенный элемент  TableRowGroup . Этот элемент позволяет задать однообразный вид таблицы и содержит коллекцию строк - элементов  TableRow  (строку таблицы). А каждый элемент TableRow содержит несколько элементов  TableCell  (ячейка таблицы).
Элемент Section Элемент Section предназначен для группировки других блочных элементов и предназначен прежде всего для однобразной стилизации этих элементов.

Элемент Section

  • Элемент Section предназначен для группировки других блочных элементов и предназначен прежде всего для однобразной стилизации этих элементов.
Элемент BlockUIContainer Элемент BlockUIContainer позволяет добавить в документ различные элементы управления, которые не являются блочными или строчными элементами. Так, мы можем добавить кнопку или картинку к документу. Такая функциональность особенно полезна, когда необходимо добавить интерактивную связь с пользователем.

Элемент BlockUIContainer

  • Элемент BlockUIContainer позволяет добавить в документ различные элементы управления, которые не являются блочными или строчными элементами. Так, мы можем добавить кнопку или картинку к документу. Такая функциональность особенно полезна, когда необходимо добавить интерактивную связь с пользователем.
Строчные элементы.  Элемент Span Элемент  Span  объединяет другие строчные элементы и применяет ним определенное форматирование :

Строчные элементы. Элемент Span

  • Элемент  Span  объединяет другие строчные элементы и применяет ним определенное форматирование :
Чтобы задать для текста отдельные способы форматирования, применяются элементы  Bold , Italic  и  Underline , которые позволяют создать текст полужирным шрифтом, курсивом и подчеркнутый текст соответственно.
  • Чтобы задать для текста отдельные способы форматирования, применяются элементы  Bold , Italic  и  Underline , которые позволяют создать текст полужирным шрифтом, курсивом и подчеркнутый текст соответственно.
Элемент   Hyperlink Элемент  Hyperlink  позволяет вставить в документ ссылку для перехода и может использоваться в навигационных приложениях :

Элемент   Hyperlink

  • Элемент  Hyperlink  позволяет вставить в документ ссылку для перехода и может использоваться в навигационных приложениях :
Элемент   LineBreak Элемент  LineBreak  задает перевод строки :

Элемент   LineBreak

  • Элемент  LineBreak  задает перевод строки :
Элемент Floater Элемент Floater в C#  — это  элемент содержимого потока, который позволяет выделить часть содержимого из главного документа . По сути, эта часть помещается в «окошко», которое плавает где-то в документе (обычно у одной из сторон).   С помощью элемента Floater можно вывести плавающее окно с некоторой информацией, текстом, картинками и прочим.

Элемент Floater

  • Элемент Floater в C#  — это  элемент содержимого потока, который позволяет выделить часть содержимого из главного документа . По сути, эта часть помещается в «окошко», которое плавает где-то в документе (обычно у одной из сторон).  
  • С помощью элемента Floater можно вывести плавающее окно с некоторой информацией, текстом, картинками и прочим.
Элемент Figure Figure во многом аналогичен элементу Floater за тем исключением, что дает больше возможностей по контролю за позиционированием.  

Элемент Figure

  • Figure во многом аналогичен элементу Floater за тем исключением, что дает больше возможностей по контролю за позиционированием.  
С помощью свойства  HorizontalAnchor  мы можем управлять позиционированием элемента по горизонтали. Так, значение ContentLeft позволяет выравнить текст по левой стороне, ContentRight - по правой стороне, а значение ContentCenter - по центру. Другое свойство  VerticalAnchor  позволяет выравнить содержимое Figure по вертикали.
  • С помощью свойства  HorizontalAnchor  мы можем управлять позиционированием элемента по горизонтали. Так, значение ContentLeft позволяет выравнить текст по левой стороне, ContentRight - по правой стороне, а значение ContentCenter - по центру.
  • Другое свойство  VerticalAnchor  позволяет выравнить содержимое Figure по вертикали.
Контейнеры потоковых документов В WPF используется три контейнера для потоковых элементов:  FlowDocumentScrollViewer ,  FlowDocumentPageViewer  и  FlowDocumentReader.

Контейнеры потоковых документов

  • В WPF используется три контейнера для потоковых элементов: 
  • FlowDocumentScrollViewerFlowDocumentPageViewer  и  FlowDocumentReader.
FlowDocumentScrollViewer FlowDocumentScrollViewer отображает документ с полосой прокрутки. Документ отображается как единое целое. Из свойств следует отметить  IsToolBarVisible  - если оно имеет значение true, то у элемента появляется панель с функциями масштабирования.

FlowDocumentScrollViewer

  • FlowDocumentScrollViewer отображает документ с полосой прокрутки. Документ отображается как единое целое.
  • Из свойств следует отметить  IsToolBarVisible  - если оно имеет значение true, то у элемента появляется панель с функциями масштабирования.
FlowDocumentPageViewer FlowDocumentPageViewer разбивает документ на страницы:

FlowDocumentPageViewer

  • FlowDocumentPageViewer разбивает документ на страницы:
FlowDocumentPageViewer Этот элемент также позволяет создать не только многостраничный способ отображения, но и разбить текст на несколько столбцов, если окно имеет необходимую длину. Для управления столбцами у элемента FlowDocument можно настроить следующие свойства: ColumnWidth : устанавливает ширину столбца ColumnGap : устанавливает расстояние между столбцами IsColumnWidthFlexible : при значении True контейнер сам корректирует ширину столбца ColumnRuleWidth  и  ColumnRuleBrush : устанавливает соответственно ширину границы мужду столбцаи и ее цвет.

FlowDocumentPageViewer

  • Этот элемент также позволяет создать не только многостраничный способ отображения, но и разбить текст на несколько столбцов, если окно имеет необходимую длину. Для управления столбцами у элемента FlowDocument можно настроить следующие свойства:
  • ColumnWidth : устанавливает ширину столбца
  • ColumnGap : устанавливает расстояние между столбцами
  • IsColumnWidthFlexible : при значении True контейнер сам корректирует ширину столбца
  • ColumnRuleWidth  и  ColumnRuleBrush : устанавливает соответственно ширину границы мужду столбцаи и ее цвет.
FlowDocumentReader объединяет возможности элементов FlowDocumentScrollViewer и FlowDocumentPageViewer и позволяет переключаться между разными режимами отображения документа.

FlowDocumentReader

  • объединяет возможности элементов FlowDocumentScrollViewer и FlowDocumentPageViewer и позволяет переключаться между разными режимами отображения документа.