Цвет Rich textbox для нового ввода (WPF, C#)
Я хочу изменить цвет моего богатого текстового поля для нового ввода. Текстовое поле загружает текст при запуске. Я хочу контролировать, чтобы новый пользовательский ввод по-прежнему выделялся, например, красным цветом или желтым фоном. Новый текст может быть добавлен в любом месте, а не только в конце. Если бы это было только в конце, я мог бы легко добавить туда красную букву.
Проблема заключается в том, что пользователь должен отредактировать текст, и изменения должны быть выделены.
Мой код :
Программа C#
string RTF = @"{\rtf1\ansi\deff0 " + @"{\colortbl;\red0\green0\blue0;\red255\green0\blue0;} "+ @"line1 \line "+ @"\cf2 "+ @"line 2 \line "+ @"\cf1 "+ @"line 3 "+ @"}"; MemoryStream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(RTF)); TextRange range = new TextRange(demo.Document.ContentStart, demo.Document.ContentEnd); range.Load(stream, DataFormats.Rtf);
код XAML
<RichTextBox HorizontalAlignment="Left" Height="116" Margin="37,266,0,0" Grid.Row="1" x:Name="demo" VerticalAlignment="Top" Width="381"> </RichTextBox>
Что я уже пробовал:
Я уже добавил RichTextBoxFormatBar из расширенного инструментария WPF. Он позволяет пользователю форматировать содержимое, но я не нашел решения для установки цвета по умолчанию для нового ввода.
0x01AA
Может быть, начало, но не очень хорошее, я думаю, еще один взлом. И много вещей, которые должны быть исправлены:
private void RichTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
rtb.Selection.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Red);
}
Andre Dieme
Большое спасибо! Он отлично работает.
Я немного изменил код, потому что этот метод можно было применить ко всем текстовым полям Richt.
частная RichTextBox_TextChanged недействительным(объект отправителя, TextChangedEventArgs е)
{
RichTextBox x = (RichTextBox)отправитель;
x.выбор.ApplyPropertyValue(Объект Textelement.ForegroundProperty, Brushes. Red);
}