我在WPF應用程序中有一個RichTextBox
,用作狀態更新的輸出容器。添加的每行都根據其信息級別進行着色(警告 - 黃色,信息 - 灰色等)。富文本框/流文檔>格式(列表順序,行間距和項目符號點)
Paragraph currentStatus = new Paragraph(new Run("ERROR: Couldn't find stuffs."));
currentStatus.Foreground = System.Windows.Media.Brushes.Red;
List myList = new List();
myList.ListItems.Add(new ListItem(currentStatus));
rtbStatus.Document.Blocks.Add(myList); // existing rich textbox
。雖然它是工作,挖我還有幾個格式問題了幾個小時之後我似乎無法過度來或研究出:
我想要列表是倒置,最近的'後'在頂部。我已經能夠通過幾種不同的方式實現這種效果,但每種方法的代價是將前一種顏色格式設置爲控件的默認前景顏色(當間距非常理想時,應用程序具有大約10行的可視緩衝區保留所應用的顏色)。
我想行間距是正常的,沒有填充的行之間。當使用列表時,每個'帖子'之間有足夠的空間可以再多出兩行,我正在尋找類似於文本塊的多行間距的內容(請參見下面的屏幕鏈接)。
我很想擺脫子彈點,如果清單是要走的路。
一對夫婦的注意事項:這一切都必須建立在後端做的,我想看看在平滑的自動滾動動畫作爲未來的功能版本,雖然我還沒有研究它尚未(脫線主題)。
現在,我正在閱讀的所有內容都讓我相信richTextBox> flowDocument> list是我的最佳解決方案,因爲我無法弄清AppendText()方法如何利用換行符(environment.NewLine)工作,但已在兩行之間填充的量更大),但在使用其他控件時也不能解決顏色動態變化問題,但我是C#世界的新手。
請告訴我,如果我這樣做是首先困難的方式。但如果任何人有如何實現上述想法,將不勝感激。上述語法的
圖片:
使用textblock所需間距的結果的圖片:
預先感謝。
爲什麼不切換到'TextBlock'的ListBox呢?甚至是一個'DataGrid',這樣你就可以按日期或嚴重程度或其他方式對事件進行排序? –