AvalonEdit을 텍스트 뷰어로 만들고 싶습니다.텍스트 뷰어로 AvalonEdit - 캐리지 없음
textEditor.IsReadOnly = true;
및 제어는 변경할 수 없습니다,하지만 여전히 편집기처럼 행동 - 캐럿을 표시하고 탐색 키 (화살표, 페이지 업/다운)를 사용하여 :
나는 할 수있다 뷰를 스크롤하는 대신 캐럿을 이동합니다.
뷰어로 만들 방법이 있습니까? 적어도 캐럿을 숨기려면 요?
AvalonEdit을 텍스트 뷰어로 만들고 싶습니다.텍스트 뷰어로 AvalonEdit - 캐리지 없음
textEditor.IsReadOnly = true;
및 제어는 변경할 수 없습니다,하지만 여전히 편집기처럼 행동 - 캐럿을 표시하고 탐색 키 (화살표, 페이지 업/다운)를 사용하여 :
나는 할 수있다 뷰를 스크롤하는 대신 캐럿을 이동합니다.
뷰어로 만들 방법이 있습니까? 적어도 캐럿을 숨기려면 요?
AvalonEdit이 세 가지 구성 요소로 구성되어 있습니다 :
TextEditor
을, 에 TextArea
을 래핑하고 높은 수준의 TextBox
- 유사 API를 추가합니다.에게 있습니다
TextView
을 처리 캐럿, 선택 및 입력, 추가210 TextArea
는, 당신은 직접 TextView
클래스를 사용할 수 있습니다. 스크롤을 사용하려면, 당신은 ScrollViewer
에 자신을 포장해야합니다 (중요 : 문서의 보이지 않는 부분 렌더링 피하기 위해 CanContentScroll
가능) 직접 TextView
구성 요소를 사용하여 <ScrollViewer
Focusable="False"
CanContentScroll="True"
VerticalContentAlignment="Top"
HorizontalContentAlignment="Left">
<avalonedit:TextView Name="textView" />
</ScrollViewer>
을, 당신은 몇 가지를 수행해야합니다 일반적으로 TextEditor
자신에 의해 수행 된 작업의 : 당신이 (예를 들어 텍스트를 선택 주위의 편집 기능의 일부를 유지하려는 경우
textView.Document = new TextDocument(); // create document instance
textView.LineTransformers.Insert(0,
new HighlightingColorizer(HighlightingManager.Instance.GetDefinition("C#")));
TextView
이 충분하지 않고 클립 보드에 복사). 그런 경우 TextEditor
또는 TextArea
을 계속 사용하고 원하지 않는 기능을 사용 중지해야합니다.선택 로직 caret가 필요에 따라 같은
당신은 정말 캐럿을 해제 할 수는 없지만 숨길 수 :
textEditor.TextArea.Caret.CaretBrush = Brushes.Transparent;
문서를 만들기 읽기 전용 텍스트 입력 및 다양한 편집 명령을 해제합니다 :
textEditor.IsReadOnly = true;
는 또한 텍스트 영역의 입력 처리기에서 명령을 제거 할 수 있습니다
// remove the keyboard caret navigation and selection logic,
// but keep the mouse selection logic and editing commands
textEditor.TextArea.DefaultInputHandler.NestedInputHandlers.Remove(
textEditor.TextArea.DefaultInputHandler.CaretNavigation);
는 false
에 IsHitTestVisible
속성을 설정하려고 :
textEditor.IsHitTestVisible = false;
그것은 캐럿을 숨기 않지만, 일이 많은, 더 이상 즉 작동하지 않습니다. 마우스 휠
로 스크롤 당신은 단지 당신이 CaretBrush
재산 Transparent
에 설정할 수 있습니다 캐럿 숨기려면 :
textEditor.TextArea.Caret.CaretBrush = Brushes.Transparent;
그렇다면 줄 번호를 추가하는 올바른 방법은 무엇입니까? 'TextView'는이 속성을 가지고 있지 않습니다. 'avalonedit : LineNumberMargin'을 추가하려고 시도했지만 텍스트 뷰에 연결하는 방법을 모르겠습니다. 'TextView' 속성을 설정하면 물건들이 멈추게됩니다. – Arek
TextEditor 접근 방식을 테스트 한 후 실제 뷰어 에서처럼 CaretNavigation 스크롤링 작업을 제거한 후. 이것은 완벽하고 아마도이 접근법을 사용하게 될 것입니다. – Arek