Gamme de couleurs de fond .Net Menustrip
-
02-07-2019 - |
Question
Je dois placer un contrôle à droite de mon MenuStrip. Le MenuStrip s’affaiblit dans les couleurs du côté gauche du BackColor pour devenir quelque chose de plus blanc à droite, et idéalement, je voudrais que mon petit contrôle s’intègre parfaitement en ayant le même backColor que le côté droit du dos. Est-ce que quelqu'un sait comment cette couleur est calculée?
Dans le pire des cas, pouvez-vous recommander une petite application permettant d’échantillonner les couleurs sur l’écran?
[Mise à jour] L’échantillonnage n’est pas une approche utile si le menustrip peut être redimensionné
La solution
Le rendu de la bande d’outils dessine un dégradé entre deux couleurs définies dans le fichier ProfessionalColorTable qui est passé dans le ToolStripProfessionalRenderer constructeur. Il utilise les MenuStripGradientBegin et < a href = "http://msdn.microsoft.com/en-us/library/system.windows.forms.professionalcolortable.menustripgradientend.aspx" rel = "aucune erreur", les valeurs MenuStripGradientEnd .
Vous devez donc récupérer ces deux valeurs, puis dessiner votre arrière-plan de manière appropriée en tant que dégradé linéaire.
Autres conseils
J'échantillonne les couleurs avec Paint.Net: effectuez une capture d'écran de tout l'écran ou de la fenêtre, puis utilisez Paint.Net pour échantillonner la couleur.
L'arrière-plan de ToolStrip (c'est-à-dire, MenuStrip, StatusStrip, etc.) n'est pas codé en dur. Recherchez " ToolStripRender " classes et classes dérivées "ToolStripSystemRenderer" et "ToolStripProfessionalRender". Ils ont plusieurs méthodes pour dessiner des parties de ToolStrip.