2009-02-19 33 views
15

Tôi đang tạo trình chỉnh sửa văn bản cho ngôn ngữ cụ thể theo miền. Tôi đang sử dụng WPF RichTextBox làm điều khiển cơ bản. Tôi không biết làm thế nào để duyên dáng bao gồm đánh số dòng. Có ai biết về bất kỳ ví dụ?WPF RichTextBox để tạo trình chỉnh sửa với số dòng

+0

Tôi không đủ thông minh để thực hiện công việc đó. Tôi đã không thể tìm ra khi RichTextBox đang cuộn để tôi có thể thử cuộn ListBox cùng một số tiền. Và, khi các dòng nhận được quá lâu trong RTB, nó sẽ tự động kết thúc hiển thị của chúng, và tôi nên bỏ qua các số dòng ListBox trong trường hợp đó. –

Trả lời

3

Tôi sẽ tạo điều khiển tổng hợp, với điều khiển ngăn xếp ngăn xếp và khối văn bản ở bên trái mà bạn sẽ sử dụng để xử lý đánh số dòng. Nếu bạn quan tâm đến số lượng dòng và có quá nhiều phần tử trực quan, thì bạn có thể sử dụng ListBox trong chế độ ảo.

Bạn sẽ phải kết nối với các sự kiện khác nhau trên RichTextBox để biết khi nào cập nhật ListBox, cũng như tính chiều cao của mỗi dòng, nhưng điều đó có thể thực hiện được với FlowDocument được gắn vào RichTextBox.

+0

Tôi không chắc liệu tôi có thích ý tưởng này hay không - việc giữ các đường cơ sở của hộp danh sách nội tuyến với các đường cơ sở RichEdit có thể có vấn đề (chắc chắn nếu trình định dạng mã của anh cho phép các phông chữ khác nhau) - nhưng vì tôi không có cách khác, +1 –

+0

Tôi không đủ thông minh để làm công việc đó. Tôi đã không thể tìm ra khi RichTextBox đang cuộn để tôi có thể thử cuộn ListBox cùng một số tiền. Và, khi các dòng nhận được quá lâu trong RTB, nó sẽ tự động kết thúc hiển thị của chúng, và tôi nên bỏ qua các số dòng ListBox trong trường hợp đó. –

3

RichText hỗ trợ "được bảo vệ" - không thể chỉnh sửa - kéo dài. Bạn có thể đổ số dòng của mình dưới dạng văn bản được bảo vệ kéo dài như một phần của luồng RTF (khi bạn định dạng của mình).

Trong biểu mẫu thắng, bạn có thể sử dụng RichTextBox.SelectionProtected Property. WPF phải có một cái gì đó tương tự.

Bằng cách này, tất cả các đường cơ sở của bạn sẽ chính xác và bạn sẽ không phải thực hiện thêm bất kỳ suy nghĩ/lập trình nào để trình chỉnh sửa hoạt động đúng cách. Văn bản có thể chỉnh sửa sẽ có thể chỉnh sửa và số dòng sẽ không được.

Chỉ bên xuống là bạn phải gửi lại luồng RTF sau mỗi lần chỉnh sửa. Nhưng tôi tưởng tượng bạn đã làm điều này để cung cấp phân tích cú pháp định dạng/chẩn đoán lỗi/bất cứ điều gì.

2

Làm thế nào để sử dụng điều khiển WPF văn bản phong phú của AqiStar? AqiStar.TextBox

Tôi không làm việc cho họ ... Tôi chỉ biết rằng Oren đang sử dụng sản phẩm này trong NHibernate Profiler (NHProf) và anh ấy dường như đào nó.

+0

Thật không may, chủ nhân của tôi sẽ không cho phép chúng tôi bao gồm phần mềm mà chúng tôi phải cấp phép trong giải pháp của chúng tôi. –

7

AvalonEdit là thiết bị tốt và là nguồn mở. Tôi nghĩ rằng nó có gần như tất cả các tính năng của điều khiển Aqistar như làm nổi bật cú pháp và gấp. Dễ cấu hình và sử dụng. Các chi tiết khác có thể được tìm thấy here. enter image description here

Các vấn đề liên quan