Я пытаюсь заставить ToolStripPanel иметь тот же стиль рисования, что и встроенные ToolStrips, чтобы он выглядел как одна непрерывная полоса. У меня есть ToolStrips, использующие ToolStripProfessionalRenderer, так что они оформлены так же, как панель задач Windows.
Я подошел ближе, создав новый рендер, производный от ToolStripProfessionalRenderer:
class CustomRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs e)
{
base.OnRenderToolStripPanelBackground(e);
LinearGradientBrush lgb = new LinearGradientBrush(e.ToolStripPanel.ClientRectangle, this.ColorTable.ToolStripGradientBegin, this.ColorTable.ToolStripGradientEnd, LinearGradientMode.Vertical);
e.Graphics.FillPath(lgb, e.ToolStripPanel.ClientRectangle);
}
}
Это создает градиентный вид с правильными цветами, но они не совсем совпадают. Кажется, что градиент имеет большее количество цветов, поэтому спред вытягивается дольше.
Я учел границу ToolStrips (которая не показана в этом коде), но они все еще не совсем совпадают.
Кто-нибудь знает, как это сделать?