如果您看一下附加的图像,有没有办法从标准 WinForms 工具条的系统渲染器中获取此悬停效果的绘图逻辑?
http://imageshack.us/photo/my-images/10/toolstriphovereffect.jpg/
编辑:无论如何,我已经用图像手动实现了这个,但是如果有人带着解决方案来到这里,请发布。
也许这段代码有帮助。当鼠标悬停在工具条按钮上时,它会在工具条按钮周围绘制带有黑色边框的红色圆圈。
设置工具条属性:
//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);
}
}
}