如果您查看附加的图像,有没有办法从标准WinForms工具条的系统渲染器获取此悬停效果的绘图逻辑?
http://imageshack.us/photo/my-images/10/toolstriphovereffect.jpg/
编辑:无论如何,我已经用图片手动实现了这个,但是如果有人来这里提供解决方案,请发帖。
答案 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);
}
}
}