我有一系列句子。每个句子都是richtextbox的FlowDocument的Inlines属性中的一个新的Run对象。 每个句子都有颜色。
.map(MyClass::createSomeValue) //
当我正在编辑这样的句子时(我改变了#39;是' y1111111111111es')
我希望得到相同的Run对象,其中包含来自' yes'到' y1111111111111es'但我改为使用' y',#11; 1111111111111111111'并且' es'
这就是我如何检索短信
var paragraph = new Paragraph();
foreach (var sentence in Sentences)
{
....
paragraph.Inlines.Add(new Run { Text = sentence, Background = new SolidColorBrush(color) });
}
tbText.Document.Blocks.Add(paragraph);
当我更改文本时,有没有办法编辑本机Run对象中的文本而不填充新的Run对象
答案 0 :(得分:0)
似乎FlowDocument会动态添加运行以鼓励设计包装。
我从另一个stackoverflow post看到,如果您使用TextBlock而不是在Paragraphs中运行,则可以保留文本并删除运行并防止换行。
在第二个区块尝试此操作:
foreach (Paragraph paragraph in tbText.Document.Blocks)
{
var sb = new StringBuilder();
foreach (Run inline in paragraph.Inlines)
{
sb.Append(inline.Text);
}
editedTextes.Add(new TextBlock()
{
Text = sb.ToString(),
TextWrapping = TextWrapping.NoWrap
});
}
或者如果您不喜欢TextBlocks,只需在构建字符串后添加一个运行:
editedTextes.Add(sb.ToString());