Форматировать richtextbox без выделенияC#

Место общения программистов C#
Ответить
Anonymous
 Форматировать richtextbox без выделения

Сообщение Anonymous »

Я хочу изменить форматирование в richtextbox двумя способами:
  • текст выделен => размер текста должен измениться. Это прекрасно работает.
  • текст не выделяется, между текстом устанавливается курсор курсора. => размер шрифта должен измениться для дальнейшего написания. Он не должен изменять уже существующий текст раньше => это не работает.
Пример для моего второго требования: мой richtextbox получил текст

stackoverflow

и курсор курсора находится между stackover и перемещаться следующим образом:

stackover|flow

Теперь мне нужно изменить размер шрифта в текущей позиции курсора, например, на 20 При дальнейшем написании я просто хочу, чтобы текст в этой позиции отображался больше. Я не хочу менять текущий существующий текст. Например:

stackoverклассныйflow

< em>cool теперь должен быть с размером шрифта 20, а stackover flow с размером шрифта по умолчанию (как и раньше)
Я нашел много ответов, но ничего из них мне помогли.
Большинство советов были:
  • Focus() в richtextbox
  • Использование Selection.Start и Selection.End
  • Используйте собственный метод для SetFontSize
Но мне ничего не помогло...
В основном я ориентировался на следующий вопрос wpf-richtextbox-fontface-fontsize
В настоящее время я получил следующий код, но он меняет только выделение текста.

Код: Выделить всё

using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;

namespace WpfApp2
{
public partial class MainWindow : Window
{
public ObservableCollection Werte { get; set; }

public MainWindow()
{
Werte = new ObservableCollection();
Werte.Add(4);
Werte.Add(10);
Werte.Add(20);
Werte.Add(55);
InitializeComponent();

cmbbx.ItemsSource = Werte;
}

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var newSize = (double)cmbbx.SelectedValue;
TextRange r = new TextRange(MyRichTextBox.Selection.Start, MyRichTextBox.Selection.End);
r.ApplyPropertyValue(TextElement.FontSizeProperty, newSize);
}

}
}
Это просто меняет выделение текста. Форматирование отсутствует, когда ничего не выбрано (только установлен курсор). Я работаю с .net 5

Подробнее здесь: https://stackoverflow.com/questions/791 ... -selection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»