Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Использование контейнера 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=" https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x=" https://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", включающего оптимальный параграф





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.