Bonjour,
Vous avez créé une application qui se minimise dans le systray (à côté de l’horloge de Windows) et vous ajoutez à cette application un ContextMenuStrip afin d’afficher un menu contextuel.
Vous vous dites que ce serait bien de pouvoir rendre ce menu un peu plus attirant en y ajoutant de la transparence par exemple (c’est à la mode et ça plait bien :o)).
Dans la fenêtre des propriétés du contrôle ContextMenuStrip, aucune propriété ne laisse sous-entendre que cela est possible. Toutefois, en creusant un peu sur la MSDN, vous apercevez que la propriété Opacity existe bel et bien sur le contrôle ContextMenuStrip. Vous vous empressez alors de la modifier, mais à votre grand désespoir, vous vous rendez compte que si votre menu contextuel contient des sous-menus, alors les sous-menus ne sont pas transparents :
Il faut donc le faire avec du code natif en appelant directement l’API système SetLayeredWindowAttributes.
Voici un exemple de code qui parcourt le menu et met de la transparence sur tous les sous-menus :
[
}
Et voilà le résultat obtenu :
A bientôt, Aurélien