How to make Listbox's texts center aligned in desktop application using c#.net

半世苍凉 提交于 2020-01-02 03:23:50

问题


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.


回答1:


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



回答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.



来源:https://stackoverflow.com/questions/2943330/how-to-make-listboxs-texts-center-aligned-in-desktop-application-using-c-net

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!