Создание (и сохранение) строк только для чтения в AvalonEdit

Каков надежный способ сделать определенные строки доступными только для чтения в элементе управления AvalonEdit? Пользователи могут изменять тела некоторых методов в файле шаблона C# или VB, но не более того. Когда пользователи добавляют или удаляют строки, состояние readonly для каждой строки должно быть неповрежденным, то есть блоки readonly ниже отредактированного содержимого должны соответственно перемещаться вверх и вниз.

Я использую AvalonEdit в WPFHost на winforms.

1 ответ

Решение

Вы можете установить textEditor.TextArea.ReadOnlySectionProvider для реализации IReadOnlySectionProvider,

AvalonEdit содержит реализацию TextSegmentReadOnlySectionProvider что позволяет маркировать сегменты только для чтения. Эти сегменты только для чтения будут перемещаться, когда пользователь добавляет / вставляет текст.TextSegmentReadOnlySectionProvider не позволяет вам предотвратить вставки в самом начале и конце документа (так как эти позиции никогда не находятся внутри какого-либо сегмента), но вы можете наследовать от класса и переопределять CanInsert() чтобы исправить этот особый случай.

Другие вопросы по тегам