如何清除Paragraph.Inline中的所有属性

时间:2015-01-11 17:29:52

标签: c# wpf flowdocument

是否可以从Paragraph.Inline元素中清除所有属性,如(背景颜色...),就像使用TextRange类一样?


好吧,我想清除Inline Collection中之前Run元素的背景属性。所以我认为调用一个清除所有以前属性的方法会更容易。 但是,在我的情况下,似乎唯一的方法就是这样:

int index = 0;
...
List<Inline> runList = ParagraphComponent.Inlines.ToList(); 
if (index < runList.Count) {
    if (index > 1) {
       int previousPartIndex = index - 2;
       if (!string.IsNullOrEmpty(runList[previousPartIndex].Text)) {
          runList[previousPartIndex].Background = null;
       }
    }
    runList[index].Background = BackgroundColor;
    index += 2;
}

1 个答案:

答案 0 :(得分:1)

由于您无法按索引访问InlineCollection,我建议您使用原始_inlineCollection初始化段落的内联(来自您的previous question )。

((Run)_inlineCollection[index]).Background = null;
index++;
while (index < inlineCollection.Count && !(_inlineCollection[index] is Run))
{
    index++;
}
if (index < _inlineCollection.Count)
{
    ((Run)_inlineCollection[index]).Background = BackgroundColor;
}