2012-04-26 29 views
5

Tôi muốn di chuyển nội dung của một RichTextBox đến một dòng cụ thể của nội dung. RichTextBox cung cấp phương thức ScrollToVerticalOffset từ số ScrollViewer được nhúng. Phương pháp được ghi lại trong MSDN, nhưng đơn vị đo của tham số có tên offset không phải là specified. Loại là double.Tính toán bù đắp cho ScrollToVerticalOffset từ số dòng trong một RichForm WPF

A VerticalOffset thuộc tính của TextBox được ghi nhận là đơn vị độc lập thiết bị (1/96 inch trên mỗi đơn vị).

Vì vậy, tôi đã cố tính toán độ lệch từ kích thước phông chữ. Kích thước phông chữ được cho theo pixel. Công thức kết quả là

offset = fontSize * 96/72 * lineNumber; 

Nhưng bước nhảy này phía sau dòng mong muốn. Hiện tại, tôi đang sử dụng phép tính này:

offset = fontSize * lineNumber; 

Điều này có đúng không?

Trả lời

2

Đúng là thời gian dài trôi qua từ việc đặt câu hỏi này, nhưng vẫn chưa tìm được câu trả lời đúng cho nó !!

tôi đã sử dụng mã này ngay bây giờ, đó là tốt cho tôi thực sự:

var offset = (lineNumber * (fontSize + 2)) - richTextBox.ActualHeight/2; 
richTextBox.ScrollToVerticalOffset(offset); 

Nếu bạn biết một giải pháp tốt hơn so với cách này, hãy giúp tôi.

+0

Tính toán của bạn có vẻ tốt với tôi. Nhưng tôi không thể xác thực tính toán vào lúc này. – Christian

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