2012-04-26 109 views
5

我想將RichTextBox的內容移動到特定的內容行。 RichTextBox提供了來自嵌入式ScrollViewer的方法ScrollToVerticalOffset。該方法記錄在MSDN中,但名爲offset的參數的測量單位不是specified。該類型是double在WPF RichTextBox中根據行號計算ScrollToVerticalOffset的偏移量

A VerticalOffsetTextBox的財產記錄爲獨立於設備的單位(每單位1/96英寸)。

所以我試圖計算字體大小的偏移量。字體大小以像素爲單位。由此產生的公式是

offset = fontSize * 96/72 * lineNumber; 

但是,這種跳轉方式背後所需的線。現在我正在使用這個計算:

offset = fontSize * lineNumber; 

這是正確的嗎?

回答

2

的確,從詢問這個問題經過很長一段時間,但仍然沒有找到正確的答案!

我現在用這個代碼,這對我來說是很好的真的:

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

如果你知道一個解決方案比這更好的方式,請幫助我。

+0

您的計算聽起來不錯。但目前我無法驗證計算。 – Christian 2015-08-21 10:23:50