Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WPF-практика 3 Текст.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.59 Mб
Скачать

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

Оборачивание элемента FlowDocument в контейнер RichTextBox отключает панель навигации по тексту.

  • В контейнер <TabControl> добавьте вкладку <TabItem Header="Text2" Selector.IsSelected="True"> и заполните ее следующим кодом

<TabItem Header="Text2" Selector.IsSelected="True">

<RichTextBox IsReadOnly="True" FontSize="21" >

<FlowDocument Background="White">

<Paragraph TextAlignment="Center" FontWeight="Bold">

Потоковый

<Span Foreground="Red">документ</Span>

<Italic>обернут в RichTextBox</Italic>

</Paragraph>

<List MarkerStyle="LowerLatin" FontFamily="Arial" FontSize="14">

<ListItem>

<Paragraph>Маркер LowerLatin</Paragraph>

</ListItem>

<ListItem>

<Paragraph>Второй элемент ListItem</Paragraph>

</ListItem>

</List>

<List MarkerStyle="Box" FontFamily="Arial" FontSize="14">

<ListItem>

<Paragraph>Маркер Box</Paragraph>

</ListItem>

<ListItem>

<Paragraph>Второй элемент ListItem</Paragraph>

</ListItem>

</List>

<Paragraph FontSize="12">В родительском контейнере RichTextBox

<Bold>

<Span FontFamily="Comic Sans MS" FontSize="12" Foreground="Blue">

включен режим IsReadOnly="True"

</Span>

</Bold> и не появляется полоса прокрутки при длинном тексте

</Paragraph>

</FlowDocument>

</RichTextBox>

</TabItem>

Присоединенный к дескриптору вкладки атрибут Selector.IsSelected="True" позиционирует ее при открытии окна.

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

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

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

Оборачивание элемента FlowDocument в контейнер FlowDocumentScrollViewer по умолчанию отключает панель инструментов документа и добавляет вертикальную панель прокрутки, которую можно настраивать. Вертикальная полоса прокрутки включается с помощью присоединенного свойства. Панель инструментов включается свойством IsToolBarVisible="True" (по умолчанию IsToolBarVisible="False" ).

FlowDocument - единственный допустимый дочерний элемент объекта FlowDocumentScrollViewer. В FlowDocumentScrollViewer может быть размещен не более чем один элемент FlowDocument.

  • В контейнер <TabControl> добавьте вкладку <TabItem Header="Text3"> и заполните ее следующим кодом

<TabItem Header="Text3">

<FlowDocumentScrollViewer

ScrollViewer.VerticalScrollBarVisibility="Auto"

IsToolBarVisible="False"

>

<FlowDocument Background="White" FontSize="14">

<Paragraph TextAlignment="Center" FontWeight="Bold">

FlowDocument

<Italic>помещен в</Italic>

<Span Foreground="Red">FlowDocumentScrollViewer</Span>

</Paragraph>

<List MarkerStyle="None" FontFamily="Arial">

<ListItem>

<Paragraph>Буря мглою небо кроет</Paragraph>

</ListItem>

<ListItem>

<Paragraph>Вихри снежные крутя.</Paragraph>

</ListItem>

<ListItem>

<Paragraph>То как зверь она завоет</Paragraph>

</ListItem>

<ListItem>

<Paragraph>То заплачет как дитя.</Paragraph>

</ListItem>

</List>

<Paragraph TextAlignment="Left" FontSize="12">Текст

нефикированного формата FlowDocument нужно заключать в параграфы

(абзацы), внутри которых можно применять стилевые элементы.

</Paragraph>

<Paragraph>

<Bold>

<Span FontFamily="Comic Sans MS" FontSize="12" Foreground="Blue">

Буря мглою небо кроет вихри снежные крутя.

<LineBreak />

</Span>

</Bold>

То как зверь она завоет, то заплачет как дитя.

</Paragraph>

</FlowDocument>

</FlowDocumentScrollViewer>

</TabItem>

Присоединенный к дескриптору <FlowDocumentScrollViewer> атрибут ScrollViewer.VerticalScrollBarVisibility="Auto" обеспечивает автоматическое появление полосы прокрутки, если текст не помещается на экране. Атрибуты, установленные в контейнере <FlowDocument>, действуют по умолчанию на все дочерние элементы, если аналогичные атрибуты в них не переопределены. В списках маркеры элементов можно менять или вообще отключать.

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

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