Feedback

C# - Custom Toolstrip Renderer

Veröffentlicht von am 29.01.2008
(1 Bewertungen)
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);
            }
            
        }
Abgelegt unter ToolStrip, Style, customizing, Control.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!