2
在WPF .NET 4.0的RichTextBox用以下文字:格式化文本的specifc線在WPF的RichTextBox
蘋果
奶酪
橙色
梨
雞
我將如何以編程方式與C#(不與X AML標記),是否以字符「C」開頭的所有行加粗?
更一般地說,如何從RichTextBox中獲取對給定文本行的引用,然後對其應用某些格式?
在WPF .NET 4.0的RichTextBox用以下文字:格式化文本的specifc線在WPF的RichTextBox
蘋果
奶酪
橙色
梨
雞
我將如何以編程方式與C#(不與X AML標記),是否以字符「C」開頭的所有行加粗?
更一般地說,如何從RichTextBox中獲取對給定文本行的引用,然後對其應用某些格式?
嗯,這比我想象的麻煩,但我認爲下面的代碼做的:
foreach (var paragraph in richTextBox1.Document.Blocks)
{
var text = new TextRange(paragraph.ContentStart,
paragraph.ContentEnd).Text;
paragraph.FontWeight = text.StartsWith("C") ?
FontWeights.Bold : FontWeights.Normal;
}
基本上,在RichTextBox保持其在FlowDocument的內容(通過文件屬性來訪問),這反過來有包含每個段落的塊的集合。實際上,Blocks集合中的每個項目都可以是派生自抽象類Block的任何東西......但我假設您只是向RichTextBox添加簡單文本,那麼它們總是隻是段落。請參閱here以獲得更好的解釋!
最棘手的部分是,要使文本脫離段落,您需要使用TextRange類...但好消息是,一旦我們有文本,段落就具有簡單的屬性,用於設置字體重量等!