Please tell me how can I align center to my L开发者_高级运维istBox's text in desktop application.
I am using C#.Net in Visual Studio 2005.I am using Windows forms.
You can set the DrawMode
property of the ListBox to DrawMode.OwnerDrawFixed
, which gives you control over the entire graphical representation of each item. For instance:
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));
}
}
In WPF you'll use the Control.HorizontalContentAligment property:
<ListBox Name="lstSample"
HorizontalContentAlignment="Center"
<ListBoxItem>Item 1</ListBoxItem>
<ListBoxItem>Item 2</ListBoxItem>
<ListBoxItem>Item 3</ListBoxItem>
</ListBox>
In Windows Forms you'll have to draw the content of the ListBox yourself by handling the DrawItem event. Here's an example on how to do it.
精彩评论