RichTextBox – мощный инструмент для отображения и редактирования форматированного текста в Windows Presentation Foundation (WPF). Он предлагает широкие возможности для управления внешним видом текста, включая изменение цвета, размера и стиля шрифта.
Для начала создайте экземпляр RichTextBox в вашем XAML-коде, добавив следующий код:
<RichTextBox x:Name="logTextBox" IsReadOnly="True" />
public void LogMessage(string message){SolidColorBrush brush = new SolidColorBrush(Colors.Black);TextRange tr = new TextRange(logTextBox.Document.ContentEnd, logTextBox.Document.ContentEnd);tr.Text = message + "";tr.ApplyPropertyValue(TextElement.ForegroundProperty, brush);}
В данном коде, мы создаем экземпляр Brush со значением черного цвета и затем применяем этот цвет к новому тексту с помощью свойства Foreground. Каждое сообщение лога добавляется на новую строку с помощью символа переноса строки «
«.
Установка RichTextBox WPF
Чтобы использовать RichTextBox в проекте WPF, необходимо выполнить следующие шаги:
1. | Открыть проект в Visual Studio. |
2. | Открыть окно дизайна главного окна проекта. |
3. | Перейти на вкладку «Toolbox» (Панель элементов управления). |
4. | Найти элемент RichTextBox в списке доступных элементов. |
5. | Сделать двойной щелчок на элементе RichTextBox, чтобы добавить его на форму. |
После выполнения этих шагов, RichTextBox будет добавлен на форму и вы сможете изменять свойства и обрабатывать события этого элемента в коде.
- Добавить элемент управления RichTextBox на форму.
- Создать новый экземпляр класса TextRange для работы с содержимым RichTextBox.
- Применить настройки форматирования текста, такие как цвет и стиль, используя методы класса TextRange.
- Использовать метод AppendText класса TextRange для добавления новой строки лога.
Пример кода:
TextRange range = new TextRange(richTextBox.Document.ContentEnd, richTextBox.Document.ContentEnd);range.Text = "Новая строка лога";range.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Red);range.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold);
Для начала, необходимо добавить элемент управления RichTextBox к разметке WPF окна:
<Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="Log Example" Height="450" Width="800"><Grid><RichTextBox Name="logTextBox"><FlowDocument><Paragraph><Run Text="Log: "/></Paragraph></FlowDocument></RichTextBox></Grid></Window>
В этом примере мы создаем элемент управления RichTextBox с именем «logTextBox». Внутри RichTextBox мы добавляем элемент FlowDocument, который будет содержать все наши логи. В нашем примере, мы добавляем абзац с текстом «Log: «.
Теперь, давайте добавим код для динамического добавления записей в лог. Возможно, самый простой способ это сделать — использовать метод AppendText класса TextRange:
private void AddLogEntry(string logText){TextRange tr = new TextRange(logTextBox.Document.ContentEnd, logTextBox.Document.ContentEnd);tr.Text = logText + Environment.NewLine;}
В методе AddLogEntry мы создаем новый объект TextRange, который начинается и заканчивается в конце содержимого RichTextBox. Затем, мы устанавливаем свойство Text объекта TextRange в значение нашего лога, а также добавляем новую строку с помощью свойства Environment.NewLine.
Теперь, каждый раз, когда мы хотим добавить новую запись в лог, мы можем просто вызвать метод AddLogEntry:
AddLogEntry("New log entry");
При этом, каждая новая запись будет добавляться в конец FlowDocument внутри RichTextBox, а старые записи будут оставаться видимыми.