Вывод лога в RichTextBox WPF


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 будет добавлен на форму и вы сможете изменять свойства и обрабатывать события этого элемента в коде.

  1. Добавить элемент управления RichTextBox на форму.
  2. Создать новый экземпляр класса TextRange для работы с содержимым RichTextBox.
  3. Применить настройки форматирования текста, такие как цвет и стиль, используя методы класса TextRange.
  4. Использовать метод 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, а старые записи будут оставаться видимыми.

Добавить комментарий

Вам также может понравиться