HI, Я разрабатываю редактор, используя RichTextBox
в WPF, я должен реализовать функцию, которую пользователь может установить шрифт выбранного Text
, если выбран какой-либо текст, если ничего не выбрано, то шрифт должен быть установлен для новый текст. Если я установил свойства шрифта (например, FontStyle
, FontSize
) RTB в более позднем случае, он установит свойства для всего текста. Как установить свойства шрифта для нового текста (т. Е. Если пользователь вводит текст, он будет иметь новую настройку шрифта).Установить свойства шрифта в RichTextBox
0
A
ответ
5
Я внедрил панель инструментов, которая может изменить размер шрифта, семью, цвет и т. Д. Я обнаружил, что детали могут быть сложными с wpf 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();
}
Смежные вопросы
- 1. Ошибка свойства WPF RichTextBox?
- 2. Как установить свойства шрифта DataGridComboBoxColumn?
- 3. Изменение шрифта текста в RichTextBox
- 4. Свойства шрифта
- 5. Установить курсор в RichTextBox
- 6. Размер шрифта для увеличения WPF RichTextBox
- 7. Изменить свойства шрифта UINavigationBar?
- 8. Поиск индекса символа стиля шрифта в RichTextBox
- 9. Настройка стиля шрифта для RichTextBox в vb.net
- 10. Размер шрифта или другое форматирование в RichTextBox
- 11. У моего RichTextBox отсутствуют свойства?
- 12. Установить offsetfor Block в RichTextBox
- 13. C# richtextbox font properties
- 14. C# потерять стиль шрифта в RichTextBox после удаления строк
- 15. WPF RichTextBox изменить цвет шрифта inline
- 16. Динамический размер шрифта для заполнения RichTextbox
- 17. Изменение шрифта для richtextbox без потери форматирования
- 18. шрифта Несоответствие размера между RichTextBox и Слово
- 19. Изменить размер шрифта для WPF RichTextBox
- 20. Воспроизведение «Шрифта» Поведение свойства
- 21. Использование свойства RichTextBox SelectionTabs в winforms
- 22. КР8: RichTextBox не имеет свойства документа
- 23. Как сделать richtextbox изменением свойства шрифта для не выбранного текста, как в WordPad?
- 24. Свойства шрифта css Свойства текста Vs
- 25. Установить свойства extJs htmleditor
- 26. Установить цвет шрифта, размер шрифта и размер шрифта в PHPExcel
- 27. WPF RichTextBox нет ширины установить
- 28. Размер шрифта setselction в richtextbox для нескольких шрифтов в vb.net
- 29. C# Использовать другой размер шрифта в строке в richtextbox
- 30. RichTextBox
прекрасный ответ –