우리는 현재 WPF (.NET 4.0)에 텍스트 편집기를 작성하여 우리 팀 내의 작성자가 영화 스크립트를 만들 수있게하려고합니다. 즉, 기능 FinalDraft 또는 Adobe 스토리의를 ressemble한다 (예 : 커서의 위치와 사용자의 의도에 따라 텍스트의 문맥 위치)WPF의 컨텍스트 텍스트 편집기
우리는 현재 디자인 현명한 두 개의 서로 다른 솔루션을 찾고 있습니다 :
컨테이너 역할을하는 하나의 WPF 컨트롤과 스크립트 내의 행을 나타내는 여러 개의 작은 텍스트 편집 컨트롤. 이렇게하면 바인딩을 쉽게 만드는 동시에 여백을 사용하여 컨트롤을 배치 할 수 있습니다. 여기에 도전하는 것은 다중 라인 선택을 처리하는 것입니다. Listbox를 컨테이너로 사용할 생각이었고 각 목록 상자 항목은 텍스트 상자를 포함하는 사용자 정의 컨트롤이었습니다. 이렇게하려면 사용자의 작업에 따라 컨트롤을 인스턴스화해야합니다. 사용자가 빈 페이지에서 작업하고 있다는 느낌을주기 위해 모든 것이 스키닝됩니다.
사용자 지정 XML 데이터를 표시 할 수있는 하나의 큰 텍스트 상자. 커서가 정확히 어디에 있는지 (예 : 액터 이름 위에 커서가 놓이는 지 등) 결정하고 텍스트를 적절히 배치합니다 (예 : 액터 이름이 가운데에 맞춰지고 대문자로 된 경우 등).
최근에 첫 번째 솔루션 구현을 시도했지만 기본 텍스트 상자에 내장 된 전체 선택 동작을 다시 구현해야하는 것은 그리 간단하지 않아 많은 작업이 필요합니다. 두 번째 솔루션의 경우, 비즈니스 객체에 바인딩하는 것은 바인딩이 다른 여러 컨트롤을 인스턴스화하는 것보다 훨씬 어려울 것입니다.
다른 해결책이 있으십니까?
처음에는 얼굴이 붉어지면서 첫 번째 접근 방식은 내가 시작하는 것처럼 보입니다. 그러나 이는 사소한 일이며 많은 시행 착오를 거쳐 사용자와 설계 관점에서 견고한 것으로 끝날 것입니다. – RQDQ
SharpDevelop 프로젝트에서 AvalonEdit을 살펴 보셨습니까? 매우 확장 성이 뛰어나며 LGPL 라이센스가 있습니다. http://wiki.sharpdevelop.net/AvalonEdit.ashx –
@colinsmith : 고마워, 지금보고있어. 비즈니스 오브젝트에 쉽게 바인딩 할 수 있기를 바랍니다.문서가 제대로 열리지 않는 것 같은 수치 스러움. :) –