Denis Biondic
Denis Biondic

Reputation: 8211

WinForms system-renderer Toolstrip item hover effect on button controls

If you take a look at the attached image, is there a way to get the drawing logic for this hover effect from the system renderer of the standard WinForms toolstrip ?

http://imageshack.us/photo/my-images/10/toolstriphovereffect.jpg/

EDIT: Anyway, I've manually implemented this with images, but if anyone comes here with a solution, please post.

Upvotes: 0

Views: 5626

Answers (1)

Renatas M.
Renatas M.

Reputation: 11820

Maybe this code helps. It draws red circle with black border around toolstripbutton when mouse is over it.

Set your toolstrip properties:

//Set render mode to professional
myToolStrip.RenderMode = ToolStripRenderMode.Professional;
//Assign new instance of your custom renderer
myToolStrip.Renderer = new MyCustomRenderer();

Custom renderer class:

public class MyCustomRenderer : ToolStripProfessionalRenderer
{
    protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
    {
        if (!e.Item.Selected) 
            base.OnRenderButtonBackground(e);
        else
        {
            Rectangle rectangle = new Rectangle(0, 0, e.Item.Size.Width - 1, e.Item.Size.Height - 1);
            //Draw red circle
            e.Graphics.FillEllipse(Brushes.Red, rectangle);
            //Draw black border
            e.Graphics.DrawEllipse(Pens.Black, rectangle);
        }
    }
}

Upvotes: 2

Related Questions