2012-07-09 2 views
6

우리는 현재 WPF (.NET 4.0)에 텍스트 편집기를 작성하여 우리 팀 내의 작성자가 영화 스크립트를 만들 수있게하려고합니다. 즉, 기능 FinalDraft 또는 Adobe 스토리의를 ressemble한다 (예 : 커서의 위치와 사용자의 의도에 따라 텍스트의 문맥 위치)WPF의 컨텍스트 텍스트 편집기

우리는 현재 디자인 현명한 두 개의 서로 다른 솔루션을 찾고 있습니다 :

  • 컨테이너 역할을하는 하나의 WPF 컨트롤과 스크립트 내의 행을 나타내는 여러 개의 작은 텍스트 편집 컨트롤. 이렇게하면 바인딩을 쉽게 만드는 동시에 여백을 사용하여 컨트롤을 배치 할 수 있습니다. 여기에 도전하는 것은 다중 라인 선택을 처리하는 것입니다. Listbox를 컨테이너로 사용할 생각이었고 각 목록 상자 항목은 텍스트 상자를 포함하는 사용자 정의 컨트롤이었습니다. 이렇게하려면 사용자의 작업에 따라 컨트롤을 인스턴스화해야합니다. 사용자가 빈 페이지에서 작업하고 있다는 느낌을주기 위해 모든 것이 스키닝됩니다.

  • 사용자 지정 XML 데이터를 표시 할 수있는 하나의 큰 텍스트 상자. 커서가 정확히 어디에 있는지 (예 : 액터 이름 위에 커서가 놓이는 지 등) 결정하고 텍스트를 적절히 배치합니다 (예 : 액터 이름이 가운데에 맞춰지고 대문자로 된 경우 등).

최근에 첫 번째 솔루션 구현을 시도했지만 기본 텍스트 상자에 내장 된 전체 선택 동작을 다시 구현해야하는 것은 그리 간단하지 않아 많은 작업이 필요합니다. 두 번째 솔루션의 경우, 비즈니스 객체에 바인딩하는 것은 바인딩이 다른 여러 컨트롤을 인스턴스화하는 것보다 훨씬 어려울 것입니다.

다른 해결책이 있으십니까?

+1

처음에는 얼굴이 붉어지면서 첫 번째 접근 방식은 내가 시작하는 것처럼 보입니다. 그러나 이는 사소한 일이며 많은 시행 착오를 거쳐 사용자와 설계 관점에서 견고한 것으로 끝날 것입니다. – RQDQ

+3

SharpDevelop 프로젝트에서 AvalonEdit을 살펴 보셨습니까? 매우 확장 성이 뛰어나며 LGPL 라이센스가 있습니다. http://wiki.sharpdevelop.net/AvalonEdit.ashx –

+0

@colinsmith : 고마워, 지금보고있어. 비즈니스 오브젝트에 쉽게 바인딩 할 수 있기를 바랍니다.문서가 제대로 열리지 않는 것 같은 수치 스러움. :) –

답변

1

한 번 응용 프로그램의 텍스트 편집기가 필요했습니다. 우리는 설정을위한 큰 XML 파일을 가지고 있으며 사용자는 그것들을 편집 할 수 있어야합니다.

파일 크기가 클수록 (+ 10000 줄) 리치 텍스트 상자가 pritty이 느려지 게됩니다.

gui 마스크를 작성하는 경우 : 사용자가 텍스트와 같은 간단한 옵션을 wirt하면. 하지만 당신이 작성한 텍스트를 쓰기를 원한다는 것을 이해합니다. 이 "마스크"gui - "많은 작은 장소"는 그들이 80 년대에있는 것처럼 느낄 것입니다.

나는 제안한다 : 프로그램을 작성하지 말고, exitings 편집기에만 플러그인을 작성하십시오. http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor 또는 단어에 추가 - 사람들이 말씀을 사랑하고 말씀 http://www.codeproject.com/Articles/8837/Writing-a-Word-Add-in-Part-I

을 알고 그리고 데이터 등을 바인딩 : 일부는 무료 등이있다 텍스트가 작성되면, 사용자는 단지 저장 버튼을 눌러야 정보 입력을 파싱 할 수 있습니다. 꽤 느려질 수 있으므로 비행 중에는하지 않을 것입니다. 또한 모든 데이터가 기록 된 경우에만 정보가 링크되어 있다고 말하면됩니다.