Главная » WPF » Рисунки и плавающие объекты

0

В большинстве «настоящих» документов есть рисунки (взять, к примеру, эту кни гу – рисунков в ней больше, чем достаточно!) и плавающие объекты (floater). В совокуп ности те и другие называются заякоренными блоками. Это означает, что их положение определяется относительно какого то места в нормальном потоке текста. В разметке мы описываем это соотношение, встраивая рисунок или плавающий объект в текст.

Рисунки и плавающие  объекты  очень похожи, но есть два отличия:  рисунки могут располагаться в нескольких  колонках  и позиционироваться относительно того места на странице, куда помещены  (с помощью свойств HorizontalAnchor и VerticalAnchor). Что касается плавающих объектов, то они, как следует из само го названия,  больше похожи на плавучие  бакены, сопровождающие содержимое, к которому прикреплен якорь. Те и другие иллюстрируются на рис. 5.52.

Чтобы понять, как эти элементы используются, создадим в документе раздел с пла вающим объектом. Поместим изображение с подписью сразу после заголовка. Плава ющий объект – это блочный элемент контейнер (например, Section), который может содержать  только  блочные  же элементы.  Мы вставим  наше изображение в элемент BlockUIContainer, позволяющий включать в документ любой элемент управления:

<Paragraph FontSize=’24pt’ KeepWithNext=’True’>Heading 2</Paragraph>

<Paragraph>

<Floater Width=’200’>

<BlockUIContainer>

<StackPanel>

<Image Source=’c:\test image.png’ />

<TextBlock FontWeight=’Bold’>Image Floater</TextBlock>

</StackPanel>

</BlockUIContainer>

</Floater>

Lorem ipsum … </Paragraph>

<Paragraph>In tincidunt … </Paragraph>

Рис. 5.52. в разбитом на страницы документе;

показаны соответствующие якоря

Форматирование на уровне страниц  и колонок

Последний уровень размещения текста – это документ  в целом. В классе FlowDocument есть ряд свойств, позволяющих управлять разбиением  на колонки  и форматированием страниц. Основные игроки здесь – межколонные линейки (линии, разделяющие колонки) и ширина колонки, но самым интересным является свойство IsColumnWidthFlexible, которое позволяет  системе автоматически вычислять размер колонок в зависимости от области, в которой отображается документ (рис. 5.53).

Рис. 5.53. Форматирование на уровне документа, включая автоматическое вычисление размеров колонок

С помощью  свойств,  определяющих размер  страницы  документа,  мы можем узнать диапазон  допустимых  размеров  (вычисляемый исходя из минимальной и максимальной ширины  и высоты  страницы) и задать  отступы  для  страницы23. Можно  также зафиксировать размер страницы  с помощью свойств PageWidth и PageHeight, если мы не хотим, чтобы документ поддерживал диапазон размеров.

Дополнительные типографические средства

Типоrрaфия – искусство представления  текста, включая выбор шрифтов, размеров и способа размещения таким образом, чтобы текст был удобен для восприятия  и эстетически привлекателен.

Дизайнеры документов  уже давно жаловались на слабую поддержку  настоя щей типографии на платформе Windows.  Для создания  высококачественных до кументов всегда требовалось дополнительное программное обеспечение (скажем, Microsoft  Word  или Adobe PageMaker). Но в WPF включено  совершенно  новое шрифтовое  ядро, а первоклассный механизм  верстки  страницы  интегрирован в базовую платформу.  Все, что мы рассматривали до сих пор (таблицы,  колонки, разбиение  на страницы), стало возможным именно благодаря  этому ядру.

Рис. 5.54. Демонстрация альтернативных форм шрифта Palatino Linotype

Теперь  мы можем  воспользоваться заложенными в стандарт  OpenType до полнительными возможностями, которые поддерживают некоторые шрифты. Например, шрифт Palatino Linotype  позволяет  выбирать разное начертание символов  в зависимости от обстоятельств. На рис. 5.54 иллюстрируются неко торые возможности.  Пожалуй,  самое интересное  – это дискреционные лигату ры. Лигатурой называется печатный  знак, представляющий собой комбинацию двух или трёх символов. В третьем примере на рис. 5.54 соединение T и h, а так же хвостик буквы Q, продолжающийся под u, – примеры  дискреционных лига тур. Большую  часть возможностей стандарта OpenType предоставляет класс Typography:

Рис. 5.55. Перенос и выравнивание строк определяют,

как слова разбиваются по слогам и размещаются внутри абзаца

Разобравшись с текстом, мы можем перейти от статических визуальных эле

ментов в мир анимации  и мультимедиа.

Источник: К. Андерсон  Основы  Windows Presentation Foundation. Пер. с англ. А. Слинкина — М.: ДМК Пресс, 2008 — 432 с.: ил.

По теме:

  • Комментарии