我需要將RTB中的文本的某個部分高亮顯示,而不是改變字體樣式/顏色,但是在選擇特定塊的意義上顏色。這與Visual Studio在調試模式下突出顯示一行相似。富文本框如何突出顯示沒有選擇的文本塊
這裏重要的是要實現上述功能WITHOUT使用richtextbox.select函數,因爲我有richtextbox正在定期更新,如果它在每次更新時調用select函數,用戶將有困難的時間拖動文本,我不希望發生這種情況。
我聽說過編輯rtf的某處,但我不完全確定如何做到這一點。我會很感激任何幫助。
我需要將RTB中的文本的某個部分高亮顯示,而不是改變字體樣式/顏色,但是在選擇特定塊的意義上顏色。這與Visual Studio在調試模式下突出顯示一行相似。富文本框如何突出顯示沒有選擇的文本塊
這裏重要的是要實現上述功能WITHOUT使用richtextbox.select函數,因爲我有richtextbox正在定期更新,如果它在每次更新時調用select函數,用戶將有困難的時間拖動文本,我不希望發生這種情況。
我聽說過編輯rtf的某處,但我不完全確定如何做到這一點。我會很感激任何幫助。
編輯:剛剛意識到的問題是winforms。下面的答案是WPF,而不是刪除我要離開它,以防有人發現它有用。
獲取使用的TextRange(...)的文本並應用背景 例如:
TextRange tr = new TextRange(position, nextPosition);
var Br = new SolidColorBrush(Color.FromScRgb(alpha, 1f, 1f, 0f));
tr.ApplyPropertyValue(TextElement.BackgroundProperty, Br);
但是,也許你應該考慮你的更新機制,並拿出一個更好的解決方案。
這不使用richtextbox的Select()函數。它只是使用start and end index
的and updates the region
中的那些座標with
適當的colour
。
// change the co-ordinates as per the selection in the run-time
richTextBox1.Text = "Select some text";
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = 4;
richTextBox1.SelectionBackColor = Color.LightBlue;
Sele
將在Light Blue
被選擇用於上述代碼。
唉,這種方法不起作用,如果你想爲你的文字的幾個部分着色 –
你可以將它作爲一個新的問題發佈在SO上。 –