是否可以从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;
}
答案 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;
}