AvalonEdit コントロールで特定の行を読み取り専用にする堅牢な方法は何ですか? ユーザーは、C# または VB テンプレート ファイル内の特定のメソッド本体を変更できますが、それ以外は変更できません。ユーザーが行を追加または削除する場合、行ごとの読み取り専用状態をそのまま維持する必要があります。
winforms の WPFHost で AvalonEdit を使用しています。
AvalonEdit コントロールで特定の行を読み取り専用にする堅牢な方法は何ですか? ユーザーは、C# または VB テンプレート ファイル内の特定のメソッド本体を変更できますが、それ以外は変更できません。ユーザーが行を追加または削除する場合、行ごとの読み取り専用状態をそのまま維持する必要があります。
winforms の WPFHost で AvalonEdit を使用しています。
textEditor.TextArea.ReadOnlySectionProvider
の実装に設定できますIReadOnlySectionProvider
。
AvalonEditには、TextSegmentReadOnlySectionProvider
セグメントを読み取り専用としてマークできるようにする実装が含まれています。これらの読み取り専用セグメントは、ユーザーがテキストを追加/挿入すると移動します。
TextSegmentReadOnlySectionProvider
ドキュメントの最初と最後への挿入を防ぐことはできませんが(これらの位置はどのセグメントにも含まれないため)、クラスから継承してオーバーライドCanInsert()
し、この特殊なケースを修正できます。