如何在无序列表中设置项目符号的颜色?

时间:2013-10-11 21:54:28

标签: itextsharp itext

我正在使用iTextSharp创建一个项目符号列表,如下所示:

Dim ul As New iTextSharp.text.List(List.UNORDERED, 10)
ul.SetListSymbol(ChrW(&H2022))

Dim li As New iTextSharp.text.ListItem()
li.Add(New Chunk("...", myFont))
...

ul.Add(li)

问题是,无论列表项的颜色如何(myFont定义),无序列表中的项目符号始终为黑色。我希望列表项颜色和子弹颜色匹配,但我不知道如何设置项目符号的颜色。

由于

1 个答案:

答案 0 :(得分:2)

ListItemParagraph的子类,基本上是Chunk的智能集合。 ParagraphListItem的构造函数设置了添加的更多块的默认值。由于您没有在构造函数中设置任何默认值,因此系统使用自己的默认值为黑色。

因此,不要使用ListItem的默认构造函数并使用ListItem.Add()添加内容,请尝试使用带有Chunk的构造函数。

Dim li = New ListItem(New Chunk("...", myFont))

li.Add()的后续调用将使用此构造函数的默认值。如果你真的嫁给Add()路径,你甚至可以使用这个构造函数只有String.Empty和你的字体信息。

另一种方法是使用指定的字体手动设置ListSymbol。出于某种原因,SetListSymbol()只接受一个字符串,但有一个只能使用的属性,它需要一个实际的Chunk

ul.ListSymbol = New Chunk(ChrW(&H2022), myFont)