Viele von Euch kennen bestimmt die schöne ToolStrip aus der .Net-Bar. Die Toolstrip wird mit einem Farbverlauf von schwarz nach dunkel-grau dargestellt, leider bringt das .Net Framework diesen Style nicht von Haus aus mit, durch die Implementierung eines CustomToolStripRenderers kann hier jedoch abhilfe geschafen werden.
// Wenn man eine Instanz dieser Klasse in die Renderer Property des Tollstrips
//auf dem Form setzt wird nur diese ToolStrip in der Farbe dargestellt.
// Alternativ kann man dem ToolStripManager.Renderer eine neue Instanz
// der Klasse zuweisen dann werden alle ToolStrips die den ManagedRenderer
// verwenden dementsprechend dargestellt.
class CustomToolStripRenderer: ToolStripRenderer
{
protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
{
LinearGradientBrush brd = new LinearGradientBrush(e.AffectedBounds,
Color.White, Color.LightSteelBlue, 90);
e.Graphics.FillRectangle(brd, e.AffectedBounds);
}
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
e.TextColor = Color.Black;
base.OnRenderItemText(e);
}
protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
{
if (e.Item.Pressed || e.Item.Selected)
{
LinearGradientBrush brd = new LinearGradientBrush(e.Item.Bounds,
Color.DarkGray, Color.LightSteelBlue, 90);
e.Graphics.FillRectangle(brd, 0, 0, e.Item.Width, e.Item.Height);
}
else
{
base.OnRenderButtonBackground(e);
}
}
Kommentare zum Snippet