К сожалению, вы не можете изменить шрифт заголовка. Но вы можете изменить шрифт для каждого отдельного элемента списка. Простой, но хакерский подход - установить ListView.Font
на полужирный шрифт и изменить шрифт каждого ListItem.Font
на шрифт по умолчанию.
listView.Font = _headerFont;
foreach(ListViewItem item in listView.Items)
{
item.Font = SystemFonts.DefaultFont;
}
В качестве альтернативы для полного контроля установите OwnerDraw
свойство true
и обрабатывать как DrawColumnHeader
, так и DrawItem
события, как показано ниже:
public partial class Form1 : Form
{
private readonly Font _headerFont = new Font(SystemFonts.DefaultFont, FontStyle.Bold);
public Form1()
{
InitializeComponent();
listView.OwnerDraw = true;
listView.DrawColumnHeader += DrawColumnHeader;
listView.DrawItem += DrawItem;
}
private void DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
// Draw default background
e.DrawBackground();
// Draw text in a different font
TextRenderer.DrawText(e.Graphics,
e.Header.Text,
_headerFont,
e.Bounds,
SystemColors.ControlText,
TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
}
private void DrawItem(object sender, DrawListViewItemEventArgs e)
{
// Use defaults for Items
e.DrawDefault = true;
}
}
В приведенном выше примере показано, как это работает, но в реальном приложении вы также должны рисовать в зависимости от состояния элемента, как в более подробном примере в. NET docs