2010-06-29 55 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