В настоящее время я пытаюсь создать некоторые основные функции текстового процессора в проекте WPF. Я использую RichTextBox и знаю все редактирующие команды (ToggleBold, ToggleItalic ... ect.). То, что я застрял, позволяет пользователю изменить шрифт и шрифт, как в MS Office, где значение изменяется только для выделенного текста и если нет выделенного текста, тогда значение изменится для текущей позиции каретки. У меня появилось приличное количество кода, чтобы заставить его работать, но у меня проблемы с выбранным текстом. Вот что я делаю для RichTextBox.Selection.WPF Richtextbox FontFace/FontSize
TextSelection text = richTextBox.Selection;
if (text.IsEmpty)
{
//doing this will change the entire word that the current caret position
//is on which is not the desire/expected result.
text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);
}
else
//This works as expected.
text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);
Так что мой вопрос: как я должен это делать? Есть ли лучший/более удобный способ сделать это? Я думал, что мне нужно будет вставить новую строку Inline в абзац, но я не мог понять, как это сделать. Любая помощь приветствуется. Спасибо.
-1. Этот код изменит шрифт для текстового поля * whole *, а не только позицию каретки. – TarkaDaal