2010-06-29 4 views
4

J'essaie d'afficher une liste de fiew dans un FlowDocument. J'ai réalisé que lors de l'utilisation MarkerStyle = TextMarkerStyle.Disc, la liste obtient moins d'indentation alors avec les autres. Je cherche un moyen d'afficher des listes avec des marqueurs de disque, mais la même indentation que les autres marqueurs obtenir, des conseils?Listes avec MarkerStyle = Disque dans un WPF-FlowDocument

Heres un extrait qui montre mon problème:

 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); 

Répondre

3

Régler la Padding sur la liste pour avoir un rembourrage explicite gauche. La valeur par défaut est Auto (NaN) pour les quatre directions, et List définira le remplissage à gauche basé sur le MarkerStyle lorsqu'il est Auto.

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

Merci! Êtes-vous sûr que vous ne voulez pas dire l.Margin? Cela compensera les listes d'indentation moindres avec Disc-Markers, mais de toute façon, je ne comprends pas pourquoi il y a moins d'indentation aux listes avec Circles qu'à tout autre, et je ne suis pas entièrement sûr que cette solution "statique" travailler avec différentes polices etc. –

+0

@Robert: Je veux dire Padding. Lorsque Padding.Left est défini sur Auto, WPF calcule le remplissage en fonction du style de marqueur. Il semble faire cela un peu différemment pour chaque style de marqueur, c'est pourquoi vous voyez l'indentation variable. Si vous le définissez à un nombre fixe, il n'utilisera pas ce calcul et l'indentation sera la même pour tout style de marqueur. – Quartermeister

+0

Ah je vois, je viens de l'ajouter à la première liste et cela ne m'a pas donné de bons résultats, Padding est exactement ce dont j'avais besoin, merci beaucoup! –