Please tell me how can I align center to my ListBox'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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With