Как сделать текстовый центр Поля списка выровненным в настольном приложении с помощью c#.net

Скажите мне, как я могу выровнять центр к тексту своего ListBox в настольном приложении.
Я использую C#.Net в Visual Studio 2005.

Я использую формы Windows.

6
задан shA.t 10 February 2018 в 13:30
поделиться

2 ответа

Вы можете установить свойство DrawMode ListBox в 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)); 
        }
    }
8
ответ дан 10 December 2019 в 02:43
поделиться

В WPF вы будете использовать свойство Control.HorizontalContentAligment :

<ListBox Name="lstSample" 
         HorizontalContentAlignment="Center"
    <ListBoxItem>Item 1</ListBoxItem>
    <ListBoxItem>Item 2</ListBoxItem>
    <ListBoxItem>Item 3</ListBoxItem>
</ListBox>

В Windows Forms вам придется рисовать содержимое ListBox самостоятельно, обрабатывая DrawItem событие. Вот пример того, как это сделать .

1
ответ дан 10 December 2019 в 02:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: