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.
GFU-Schulungen  [Anzeige]

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

// 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!