我正在使用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
定义),无序列表中的项目符号始终为黑色。我希望列表项颜色和子弹颜色匹配,但我不知道如何设置项目符号的颜色。
由于
答案 0 :(得分:2)
ListItem
是Paragraph
的子类,基本上是Chunk
的智能集合。 Paragraph
和ListItem
的构造函数设置了添加的更多块的默认值。由于您没有在构造函数中设置任何默认值,因此系统使用自己的默认值为黑色。
因此,不要使用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)