Как изменить шрифт для текущей выделенной текстовой области внутри WPF RichTextBox?WPF RichTextBox: как изменить выбранный шрифт текста?
ответ
решаемые ...
if (this.TextEditor.Selection.IsEmpty)
this.TextEditor.CurrentFontFamily = SelectedFont;
else
this.TextEditor.Selection.ApplyPropertyValue(TextElement.FontFamilyProperty, SelectedFont);
Как о чем-то вроде:
TextSelection text = richTextBox.Selection;
if (!text.IsEmpty)
{
text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);
}
Это, по крайней мере, размер шрифта. Возможно, это свойство для семейства шрифтов, если это то, что вы хотели изменить. – KrisTrip
Практически там. Он работает для размера шрифта. Но для семейства шрифтов он изменяет весь абзац, а не только выбор. –
Я реализовал панель инструментов, которая может изменить размер шрифта, семья, цвет и т.д. То, что я нашел это детали может быть сложно с МОФ RichTextBox. Настройка шрифта выбора имеет смысл, но есть также свойства шрифта по умолчанию для текстового поля и текущие свойства каретки, с которыми можно бороться. Вот что я написал, чтобы заставить его работать в большинстве случаев с размером шрифта. Процесс должен быть одинаковым для fontfamily и fontcolor. Надеюсь, поможет.
public static void SetFontSize(RichTextBox target, double value)
{
// Make sure we have a richtextbox.
if (target == null)
return;
// Make sure we have a selection. Should have one even if there is no text selected.
if (target.Selection != null)
{
// Check whether there is text selected or just sitting at cursor
if (target.Selection.IsEmpty)
{
// Check to see if we are at the start of the textbox and nothing has been added yet
if (target.Selection.Start.Paragraph == null)
{
// Add a new paragraph object to the richtextbox with the fontsize
Paragraph p = new Paragraph();
p.FontSize = value;
target.Document.Blocks.Add(p);
}
else
{
// Get current position of cursor
TextPointer curCaret = target.CaretPosition;
// Get the current block object that the cursor is in
Block curBlock = target.Document.Blocks.Where
(x => x.ContentStart.CompareTo(curCaret) == -1 && x.ContentEnd.CompareTo(curCaret) == 1).FirstOrDefault();
if (curBlock != null)
{
Paragraph curParagraph = curBlock as Paragraph;
// Create a new run object with the fontsize, and add it to the current block
Run newRun = new Run();
newRun.FontSize = value;
curParagraph.Inlines.Add(newRun);
// Reset the cursor into the new block.
// If we don't do this, the font size will default again when you start typing.
target.CaretPosition = newRun.ElementStart;
}
}
}
else // There is selected text, so change the fontsize of the selection
{
TextRange selectionTextRange = new TextRange(target.Selection.Start, target.Selection.End);
selectionTextRange.ApplyPropertyValue(TextElement.FontSizeProperty, value);
}
}
// Reset the focus onto the richtextbox after selecting the font in a toolbar etc
target.Focus();
}
Чтобы изменить семейство шрифтов для выбора в RichTextBox вы должны использовать это:
text.ApplyPropertyValue(Run.FontFamilyProperty, value);
Выбранный текст в RichTextBox является объектом Run, поэтому необходимо использовать Run свойства зависимостей. Похоже, что это работает в Silverlight, так что в WPF должно быть одно и то же.
Чтобы получить текущее использование выбор:
Dim ГСЧ Как TextRange = Новый TextRange (YourRtfBox.Selection.Start, YourRtfBox.Selection.End)
А затем установите FontStyle:
RNG .ApplyPropertyValue (Inline.FontSizeProperty, YourFontSizeValue) rng.ApplyPropertyValue (Inline.FontFamilyProperty, YourFontFamilyValue)
- 1. Как изменить шрифт в WPF RichTextBox
- 2. WPF RichTextBox получить выбранный элемент
- 3. WPF RichTextBox - выбранный блок?
- 4. Как изменить шрифт текста?
- 5. Ошибка свойства WPF RichTextBox?
- 6. Как увеличить шрифт для текста в richtextbox
- 7. WPF RichTextBox - форматирование введенного текста
- 8. RichTextBox шрифт
- 9. WPF Richtextbox FontFace/FontSize
- 10. Как изменить FontFamily в WPF RichTextBox без изменения предыдущего текста
- 11. Форматирование текста в RichtextBox WPF
- 12. Как изменить шрифт только выделенного текста?
- 13. Как изменить шрифт-удивительный шрифт текста?
- 14. Wpf Позиция Richtextbox определенного текста
- 15. Как изменить выбранный цвет текста?
- 16. Как изменить шрифт в WPF?
- 17. WPF Richtextbox FontFace/FontSize
- 18. Изменить шрифт надстрочного текста
- 19. Хочет изменить шрифт текста
- 20. WPF RichTextBox SelectionChanged Performance
- 21. Как изменить шрифт нескольких размеров в richtextbox на C#?
- 22. RichTextBox -> Изменить шрифт для определенной строки
- 23. Выбранный цвет текста в WPF
- 24. Изменить размер шрифта для WPF RichTextBox
- 25. Как изменить цвет текста в RichTextBox
- 26. Как изменить RichTextBox выделенный цвет текста? C#
- 27. Как изменить направление текста в richtextbox?
- 28. WPF RichTextBox изменить цвет шрифта inline
- 29. Как WPF RIchtextbox отображает Unicode?
- 30. Расширенной WPF Toolkit RichTextBox отображение текста вертикально
Это решение основано на: http://stackoverflow.com/questions/1854703/how-to-set-richtextbox-font-for-the-next-text-to-be-written – tgr42