我想对列表框项目进行一些视觉更改,所以我将 DrawMode 设置为“OwnerDrawFixed”我希望文本垂直位于项目的中间,这样做很容易:
private void listTypes_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
e.Graphics.DrawString(listTypes.Items[e.Index].ToString(),
e.Font, Brushes.Black, e.Bounds.Left, e.Bounds.Top + e.Bounds.Height/4
, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}
但是要使文本水平居中,我需要知道文本宽度如何获取它,或者有更好的方法来做到这一点