我在WPF應用程序中有一個RichTextBox。我想對每行文本應用備用着色。我已將Background屬性設置爲所需的顏色,但由於文本長度的差異,只有包含文本的部分纔會獲取背景顏色。如何設置屬性,以便將整行設置爲所需的背景色。將文本背景顏色應用於整行文本
一個非優雅的解決方案是填充一些空格,但如果RichTextBox佈局更改,則需要通過試錯法來更改代碼。
有沒有更好的方法?
我在WPF應用程序中有一個RichTextBox。我想對每行文本應用備用着色。我已將Background屬性設置爲所需的顏色,但由於文本長度的差異,只有包含文本的部分纔會獲取背景顏色。如何設置屬性,以便將整行設置爲所需的背景色。將文本背景顏色應用於整行文本
一個非優雅的解決方案是填充一些空格,但如果RichTextBox佈局更改,則需要通過試錯法來更改代碼。
有沒有更好的方法?
我想知道如何使用動態生成的項目進行這項工作。對於我的實際情況,我使用了額外的空間。現在,這是我走的路。
如果所有的線條都是一樣的高度,那麼你可以申請一個背景圖片給RichTextBox
本身,這將有同樣的效果(組尺寸/顏色如適用):
<RichTexBox>
<RichTexBox.Background>
<VisualBrush TileMode="Tile" Viewport="0 0 100 100" ViewportUnits="Absolute">
<VisualBrush.Visual>
<StackPanel>
<Rectangle Width="100" Height="50" Fill="Red" />
<Rectangle Width="100" Height="50" Fill="Blue" />
</StackPanel>
</VisualBrush.Visual>
</VisualBrush>
</RichTexBox.Background>
</RichTexBox>
這些行是動態生成的,所以我不會將這個現有的XAML代碼調整爲執行任務。雖然,我還沒有嘗試過你所建議的方法,但是它可以工作超過三行嗎? –
嘗試使用List
其中突出顯示具有背景顏色的行的行。當有人更改RichTextBox.TextChanged
事件中的文本時,刷新ListItem
集合(根據文本中的行數)。
<RichTextBox>
<RichTextBox.Document>
<FlowDocument>
<List>
<ListItem Background="Red" />
<ListItem Background="Green"/>
<ListItem Background="Yellow"/>
</List>
</FlowDocument>
</RichTextBox.Document>
</RichTextBox>
我想你可以改變符號看N乘重寫它的風格感覺名單。
你可以請你發佈你的代碼如何定義顏色? –
你能解釋用戶的操作嗎?我應該認爲這是你正在做的事情...... 1.在對方下面輸入3條線。 2.選擇其中一行並設置背景顏色。 3.期望背景橫跨該行的富文本框/水平滾動條的寬度? –
@AngelWPF:不會有任何水平滾動條。寬度是固定的。這就像備選着色人員列出的,以減少閱讀的痛苦。 –