2011-07-19 1 views
0

Si vous regardez l'image ci-jointe, existe-t-il un moyen d'obtenir la logique de dessin pour cet effet de survol du système de rendu de la barre d'outils WinForms standard?WinForms system-renderer Effet survol de l'élément Toolstrip sur les boutons

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

EDIT: De toute façon, je l'ai mis en œuvre manuellement ce avec des images, mais si quelqu'un vient ici avec une solution, s'il vous plaît poster.

+0

"logique de dessin"? Que voulez-vous dire? – Tigran

+0

L'effet hover, le style vitreux pour la souris. Ce n'est pas juste une image tracée, c'est du code GDI + pour dessiner quelque part dans le rendu du système. Je suppose –

Répondre

1

Peut-être que ce code aide. Il dessine un cercle rouge avec une bordure noire autour du bouton tooltrip quand la souris est dessus.

Définissez vos propriétés ToolStrip:

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

classe personnalisée renderer:

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

Merci pour votre réponse, mais je n'ai aucun problème avec le dessin de base, je ne veux pas recréer tout l'effet s'il y a un moyen de l'obtenir à partir de WinForms. En outre, je veux utiliser l'effet pour les contrôles de bouton, pas dans la barre d'outils –

+0

Ok, j'ai probablement mal compris la question. Donc vous voulez utiliser cet effet (comme montré dans l'image) sur le contrôle System.Windows.Forms.Button? – Reniuz

+0

Oui, et parce que je ne vois pas un moyen d '"extraire" cet effet je crée juste une sous-classe de bouton qui peut appliquer des images de survol/push, mais j'aurai le problème quand j'ai des boutons de taille différente bouton différentes images) –