我试图让 ToolStripPanel 具有与嵌入式 ToolStrips 相同的绘图样式,以便它看起来像一个连续的条形图。我有使用 ToolStripProfessionalRenderer 的 ToolStrip,因此它们的样式与 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 的边界(此代码中未显示),但它们仍然不完全匹配。
有谁知道如何做到这一点?