2014-02-17 3 views
1

오른쪽에서 왼쪽으로 쓰는 언어 (예 : 아랍어)를 지원하기 위해 오른쪽에서 왼쪽으로 배치하는 레이아웃을 만들려고합니다.AvalonEdit : 오른쪽에서 왼쪽으로 만드는 방법은 무엇입니까?

코드가 너무 커서 이해할 수없는 것 같습니다. 내 변화가 어디 있을지 최소한 아는가? 그것의 주요 모듈 또는 각 구성 요소를 분명히하는 다이어그램/문서 (소스와 함께 제공되는 4 개의 이미지 제외)

적어도 편집자의 기본 구성 요소가 무엇인지 알아야합니다. 도움 주셔서 감사합니다

답변

1

TextView 클래스는 실제 텍스트 렌더링을 담당합니다. 텍스트 줄 내의 레이아웃은 WPF TextFormatter을 사용하여 수행됩니다 (TextView.cs의 #region BuildVisualLine 참조).

AvalonEdit는 왼쪽에서 오른쪽 단락 내에서 이미 양방향 텍스트를 지원하므로 WPF에서 오른쪽에서 왼쪽 단락을 만들 수 있으면 편집기가 작동해야합니다.

VisualLineTextParagraphProperties.FlowDirection 속성을 변경하는 것으로 충분하다고 생각합니다.

이상적으로 텍스트보기는 TextView.FlowDirection의 값을 사용하지만 TextView.FlowDirection (텍스트가 미러 됨)을 사용할 때 이상한 영향을 보았습니다. 그게 뭔지 잘 모르겠다. WPF가 오른쪽에서 왼쪽 컨텍스트에서 작동하는 방식에 익숙하지 않습니다 (일부 자동 미러링 기능이 있다고 생각합니까?).

+0

대단히 감사합니다 ... 거의 완성되었습니다! 바로 지금 문제가됩니다. 1) 줄 번호가 왼쪽에 있습니다 (오른쪽에서 만들 수있는 경우). 2) 입력 할 때 커서는 맨 오른쪽으로 이동하지 않고 그대로 둡니다. (가장 좋은 설정은'FlowDirection = LeftToRight','TextAlignment = Right'입니다) –