- •Лабораторная работа: Текст wpf Введение
- •Упражнение 1. Простые текстовые элементы
- •Создание заготовки решения
- •Элемент TextBlock с анимацией
- •Элемент TextBlock с текстурой символов
- •Автоматический перенос слов в TextBlock
- •Использование дополнительных шрифтов
- •Элементы TextBox и PasswordBox
- •Упражнение 2. Поддержка документов нефиксированного формата
- •Использование FlowDocument с контейнером по умолчанию
- •Использование контейнера RichTextBox
- •Использование контейнера FlowDocumentScrollViewer
- •Использование контейнера FlowDocumentPageViewer
- •Пример из msdn
- •Загрузка FlowDocument из xaml-файла
- •Упражнение 3. Работа в wpf с html-документами
- •Просмотр html-документов в WebBrowser
- •Отображение html-текста в WebBrowser из файла
- •Отображение html-текста в WebBrowser из потока
- •Еще один способ загрузки html-документа из потока
- •Упражнение 4. Преобразование html- в xaml-документ на лету
- •Упражнение 5. Преобразование html- в xaml-документ с записью в файл
- •Пражнение 6. Выборка текста из текстового файла с форматированием на лету
Элемент TextBlock с текстурой символов
Текст в элементе TextBlock можно закрашивать произвольным рисунком.
В панели Solution Explorer создайте для корня дерева проекта папку Images и добавьте в нее (командой Add ) из прилагаемого к работе каталога Source файлы Image1.jpg и Image2.png
Добавьте в файл Window1.xaml новую вкладку со следующей разметкой
<!--Вкладка TextBlock2-->
<TabItem Header="TextBlock2">
<Canvas Background="Black">
<TextBlock
Canvas.Left = "10"
Canvas.Top="10"
FontFamily="Arial"
FontSize="36"
Foreground="Red"
Text="SolidColorBrush"
/>
<TextBlock
Canvas.Left = "10"
Canvas.Top="50"
FontFamily="Arial"
FontSize="75"
Text="Image1">
<TextBlock.Foreground>
<ImageBrush ImageSource="Images\Image1.jpg" Opacity=".9" />
</TextBlock.Foreground>
</TextBlock>
<TextBlock
Canvas.Left = "10"
Canvas.Top="130"
FontFamily="Arial"
FontSize="75"
Text="Image2">
<TextBlock.Foreground>
<ImageBrush ImageSource="Images/Image2.png" />
</TextBlock.Foreground>
</TextBlock>
</Canvas>
</TabItem>
Запустите приложение - должно получиться следующее
Изучите приведенный код
Автоматический перенос слов в TextBlock
Если явно определить ширину элемента TextBlock и задать атрибут TextWraping="Wrap", то блочный текст будет автоматически размещаться внутри заданной ширины.
Добавьте в файл Window1.xaml новую вкладку со следующей разметкой
<!--Вкладка TextBlock3-->
<!-- Элемент TextBlock с переносом строк -->
<TabItem Header="TextBlock3">
<Grid Background="White">
<TextBlock
TextWrapping="Wrap"
FontSize="18"
TextAlignment="Center" >
Если в элементе TextBlock задать атрибут TextWraping="Wrap",
то блочный текст будет автоматически размещаться внутри
заданной ширины
<LineBreak />
<Run Foreground="Red" FontSize="28" FontFamily="Monotype Corsiva">
Панель Grid здесь введена для создания белого фона
</Run>
<LineBreak />
<Run FontSize="12">
Общие настройки родителя действуют на потомков до тех пор,
пока не будут переопределены внутри самих потомков
</Run>
</TextBlock>
</Grid>
</TabItem>
Запустите приложение - должно получиться следующее
Изучите приведенный код
