0

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

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

编辑:无论如何,我已经用图像手动实现了这个,但是如果有人带着解决方案来到这里,请发布。

4

1 回答 1

2

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

设置工具条属性:

//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);
        }
    }
}
于 2011-07-19T09:19:58.933 回答