WinForms系统渲染器工具条项目悬停对按钮控件的影响

时间:2011-07-19 08:02:32

标签: c# .net winforms drawing toolstrip

如果您查看附加的图像,有没有办法从标准WinForms工具条的系统渲染器获取此悬停效果的绘图逻辑?

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

编辑:无论如何,我已经用图片手动实现了这个,但是如果有人来这里提供解决方案,请发帖。

1 个答案:

答案 0 :(得分:1)

也许这段代码有帮助。当鼠标悬停在工具条上时,它会绘制带有黑色边框的红色圆圈。

设置工具条属性:

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

自定义渲染器类:

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);
        }
    }
}