- текст выделен => размер текста должен измениться. Это прекрасно работает.
- текст не выделяется, между текстом устанавливается курсор курсора. => размер шрифта должен измениться для дальнейшего написания. Он не должен изменять уже существующий текст раньше => это не работает.
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);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -selection
Мобильная версия