Использование контейнера FlowDocumentPageViewer

Использование контейнера FlowDocumentPageViewer для FlowDocument позволяет представлять документ как одну страницу без средства поиска текста и разбивки его на страницы и колонки, но оставляет панель изменения масштаба и навигации. Однако в самом FlowDocument есть свойства, позволяющие настраивать обычный и многоколоночный текст. Вот некоторые из них

  • TextAlignment="Justify" - выравнивание текста по обеим границам колонок (включен по умолчанию)
  • IsHyphenationEnabled="True" - включение расстановки переносов (при наличии словарей)
  • IsOptimalParagraphEnabled="True" - включение оптимального абзаца, выравнивающего пробелы между словами за счет разрежения символов в самих словах при режиме TextAlignment="Justify"
  • ColumnGap="25" - ширина между колонками в логических пикселах
  • ColumnWidth="150" - предпочтительная (минимальная) ширина колонки
  • IsColumnWidthFlexible="False" - это значение флага явно запрещает дозаполнять окно просмотра и устанавливает жесткую ширину колонки
  • ColumnRuleWidth="5" - ширина вертикальных линеек, разделяющих колонки текста
  • ColumnRuleBrush="Red" - цвет линеек
  • В контейнер <TabControl> добавьте вкладку <TabItem Header="Text4"> и заполните ее следующим кодом
<TabItem Header="Text4"> <FlowDocumentPageViewer> <FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Background="White" ColumnWidth="150" ColumnRuleWidth="2" ColumnRuleBrush="Red" ColumnGap="30" IsHyphenationEnabled="True" IsOptimalParagraphEnabled="True" > <Paragraph FontSize="18" FontWeight="Bold" TextAlignment="Center"> Примеры форматирования FlowDocument &amp; FlowDocumentPageViewer </Paragraph> <Paragraph> Это абзац с атрибутами по умолчанию. </Paragraph> <Paragraph> Это еще один абзац с атрибутами по умолчанию. </Paragraph> <Paragraph FontSize="18">Абзац с FontSize="18"</Paragraph> <Paragraph FontSize="15">Абзац с FontSize="15"</Paragraph> <Paragraph FontSize="15">Список &lt;List FontFamily="Arial"&gt;</Paragraph> <List FontFamily="Arial"> <ListItem> <Paragraph>ListItem 1</Paragraph> </ListItem> <ListItem> <Paragraph>ListItem 2</Paragraph> </ListItem> <ListItem> <Paragraph>ListItem 3</Paragraph> </ListItem> <ListItem> <Paragraph>ListItem 4</Paragraph> </ListItem> <ListItem> <Paragraph>ListItem 5</Paragraph> </ListItem> </List> <Paragraph> <Bold>Это элемент &lt;Bold&gt; внутри абзаца &lt;Paragraph&gt;</Bold> </Paragraph> <Paragraph> <Underline>Это элемент Underline внутри абзаца</Underline> </Paragraph> <Paragraph> <Bold> <Underline>Подчеркнутый внутри полужирного</Underline> </Bold> </Paragraph> <Paragraph> <Italic>Это элемент &lt;Italic&gt;</Italic> </Paragraph> <Paragraph> <Span>Элемент Span с настройками по умолчанию</Span> </Paragraph> <Paragraph> <Run>Элемент Run с настройками по умолчанию</Run> </Paragraph> <Paragraph FontSize="15">Subscript, Superscript</Paragraph> <Paragraph> <Run Typography.Variants="Superscript">This text is Superscripted.</Run> This text isn't. </Paragraph> <Paragraph> <Run Typography.Variants="Subscript">This text is Subscripted.</Run> This text isn't. </Paragraph> <Paragraph TextIndent="-25" Margin="25,0"> If a font does not support a particular form (such as Superscript) a default font form will be displayed. </Paragraph> <Paragraph FontSize="15">Blocks, breaks, paragraph</Paragraph> <Section> <Paragraph>A block section of text</Paragraph> </Section> <Section> <Paragraph>Another block section of text</Paragraph> </Section> <Paragraph> <LineBreak/> </Paragraph> <Section> <Paragraph>... and another section, preceded by a LineBreak</Paragraph> </Section> <Section BreakPageBefore="True"/> <Section> <Paragraph>... and another section, preceded by a PageBreak</Paragraph> </Section> <Paragraph>Finally, a paragraph. Note the break between this paragraph ...</Paragraph> <Paragraph TextIndent="25">... and this paragraph, and also the left indention.</Paragraph> </FlowDocument> </FlowDocumentPageViewer> </TabItem>

Здесь мы применили основной набор элементов форматирования текста 'на лету'. Обратите внимание, что в разметке угловые скобки кодируются как в HTML. Другие управляющие символы разметки кодируются аналогично, например, ' & ' кодируется как ' &amp; '. Знак подчеркивания ' _ ' считается служебным для выделения горячих клавиш в меню, поэтому в ином употреблении должен экранироваться таким же знаком подчеркивания.

Параметры настройки FlowDocument разбивают текст на колонки, задают ширину колонок, расстояние между ними и вертикальные линейки. Определение пространств имен в дескрипторе FlowDocument здесь роли не играет, но должно обязательно присутствовать для успокоения редактора, если контейнер FlowDocument редактируется оболочкой автономно как внешний файл документа.

  • Запустите приложение, поизменяйте размер окна и разберитесь с кодом

Результат будет таким


увеличить изображение

Обратите внимание, что в длинных словах кириллический текст объект FlowDocument не переносит, а латиницу - переносит.

  • Проверьте действие атрибута IsOptimalParagraphEnabled="True", включающего оптимальный параграф







Дата добавления: 2015-04-15; просмотров: 1191;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.