WinForms system-renderer Эффект наведения элемента панели инструментов на кнопках - PullRequest
0 голосов
/ 19 июля 2011

Если вы посмотрите на прикрепленное изображение, есть ли способ получить логику рисования для этого эффекта при наведении мышью из системного средства визуализации стандартной панели инструментов WinForms?

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

РЕДАКТИРОВАТЬ: Во всяком случае, я вручную реализовал это с изображениями, но если кто-нибудь придет сюда с решением, пожалуйста, напишите.

1 Ответ

1 голос
/ 19 июля 2011

Может быть, этот код помогает.Когда мышь находится над ним, он рисует красный круг с черной рамкой вокруг кнопки инструмента.

Установите свойства панели инструментов:

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