在我的列表框對齊2串,我想顯示以下C#通過列表框
String 1(left aligned - default) int value(right aligned)
有沒有辦法做到這一點,或者只出現在一個列表框1個對齊?
在我的列表框對齊2串,我想顯示以下C#通過列表框
String 1(left aligned - default) int value(right aligned)
有沒有辦法做到這一點,或者只出現在一個列表框1個對齊?
如果您在Winforms中使用,則可以使用此代碼。
可如果你使用WPF ListBox的DrawMode
屬性設置爲DrawMode.OwnerDrawFixed
ListBox listBox = new ListBox();
listBox.DrawMode = DrawMode.OwnerDrawFixed;
listBox.DrawItem += new DrawItemEventHandler(listBox_DrawItem);
void listBox_DrawItem(object sender, DrawItemEventArgs e)
{
ListBox list = (ListBox)sender;
if (e.Index > -1)
{
object item = list.Items[e.Index];
e.DrawBackground();
e.DrawFocusRectangle();
Brush brush = new SolidBrush(e.ForeColor);
SizeF size = e.Graphics.MeasureString(item.ToString(), e.Font);
e.Graphics.DrawString(item.ToString(), e.Font, brush, e.Bounds.Left + (e.Bounds.Width/2 - size.Width/2), e.Bounds.Top + (e.Bounds.Height/2 - size.Height/2));
}
}
。這應該在XAML中工作:
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinition>
<ColumnDefinition Width="Auto" MinWidth="100"/>
<ColumnDefinition Width="Auto" MinWidth="100"/>
</Grid.ColumnDefinition>
<TextBlock Text="{Binding 1}" HorizontalAlignment="Left"/>
<TextBlock Text="{Binding value}" HorizontalAlignment="Right" Grid.Column="1"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
內存不足!你可能需要調整一下。順便說一下:像「1」和「value」這樣的變量名屬於壞命名類別;-)希望它只是針對帖子,而不是針對您真實的工作代碼。
下次您還可以明確您希望顯示哪種技術(WinForms,WPF,ASP.net等)。
克里斯托夫
當回答問題時,試着拿出「個人」的語言。答案不像論壇那樣健談,他們更像是維基百科條目:) – 2013-05-14 04:39:19