2010-06-29 97 views
4

我试图在FlowDocument中显示一个fiew列表。我意识到,当使用 MarkerStyle = TextMarkerStyle.Disc时,列表的缩进比其他缩进小。我正在寻找一种方式来显示与光盘标记列表,但与其他标记相同的缩进,任何提示?MarkerStyle列表= WPF-FlowDocument中的光盘

继承人的一个片段,显示我的问题:

 List l = new List(); 
     l.MarkerStyle = TextMarkerStyle.Disc;  
     l.ListItems.Add(new ListItem(new Paragraph(new Run("cxyc")))); 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("asdasd")))); 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("ghjtd")))); 
     richTextBox.Document.Blocks.Add(l); 


     l = new List(); 
     l.MarkerStyle = TextMarkerStyle.Decimal; 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("$!")))); 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("&!§")))); 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("&!")))); 
     richTextBox.Document.Blocks.Add(l); 

     l = new List(); 
     l.MarkerStyle = TextMarkerStyle.LowerLatin; 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("16123")))); 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("gasd")))); 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("612312")))); 
     richTextBox.Document.Blocks.Add(l); 

     l = new List(); 
     l.MarkerStyle = TextMarkerStyle.None; 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("15123")))); 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("fasdas")))); 
     l.ListItems.Add(new ListItem(new Paragraph(new Run("5161234")))); 
     richTextBox.Document.Blocks.Add(l); 

回答

3

设置的列表中Padding有一个明确的左填充。对于所有四个方向,默认值都是自动(NaN),当它为自动时,List将根据MarkerStyle设置左侧填充。

l.Padding = new Thickness(20, double.NaN, double.NaN, double.NaN); 
+0

谢谢! 你确定你不认为l.Margin?这将补偿Disc-Markers得到的较小缩进列表,但无论如何,我不明白为什么缩进列表与Circles然后是其他任何其他缩进,我不完全确定这个“静态”解决方案将使用不同的字体等 – 2010-06-29 13:10:51

+0

@罗伯特:我的意思是填充。当Padding.Left设置为Auto时,WPF将根据标记样式计算填充。它似乎对每个标记样式都有点不同,这就是为什么你会看到变量缩进。如果将其设置为固定数字,则不会使用该计算,并且缩进对于任何标记样式都是相同的。 – Quartermeister 2010-06-29 13:20:30

+0

啊我看到了,我只是将它添加到第一个列表中,并没有给我很好的结果,Padding正是我需要的,非常感谢! – 2010-06-29 13:32:45