我正在C#上编写一个WPF应用程序,里面有一个ListBox。列表框在每行上都有一个项目,格式如下:
ID Name Price
我知道ID最多有3个数字,最小值为1,名称少于25个字符,所以我想在列中对齐这3个值,如下所示:
194 Item Name 1 24.99
1 Item Other Name 4.00
13 Item Item Item 32.22
依旧...... 我尝试了几件事:
string.Format("{0} {1} {2:0.00}", id.ToString().PadRight(4), name.PadRight(25), price)
我试过的另一个选项:
string.Format("{0, -4} {1, -25} {2:0.00}", id, name, price)
不幸的是,每当我获得3个数字的ID时,它会将文本向右推进一点,因此列不对齐。任何提示或想法如何解决?
答案 0 :(得分:2)
使用WPF
,您可以选择Textblocks
位于StackPanel
DataTemplate
内的多个Listbox
ItemTemplate
。 @Clemens 有一个很好的链接。您还可以将StackPanel Orientation
设置为Horizontal
,以便所有内容都在一行上。这样,您可以将TextAlignment
设置为Right
或Left
。如果StackPanel无法正常工作,您还可以使用网格并设置GridColumns
并将Textblocks
放置到特定列。