Question

Vous savez que ces boutons de sélecteur de couleurs avec un petit rectangle en elle, l'affichage de la couleur actuellement sélectionnée? Comme dans les produits MS Office.

Je voudrais mettre en œuvre un en utilisant C # / .NET. Donc, j'ai une petite icône agréable avec un rectangle de couleur magenta (qui est d'afficher la couleur) et un fond transparent.

Je peux penser à deux façons comment cela pourrait se faire, mais ils sont tous les deux pas vraiment élégant:

  • Modifier l'icône en utilisant le logiciel graphique pour avoir une couleur de fond solide au lieu de la transparence et la redimensionner pour être exactement aussi grand que le bouton contenant. Cela permettrait d'utiliser TransparentColor = Manenta en combinaison avec le bouton arrière-plan, mais l'icône devrait être modifiée chaque fois que la taille du bouton, barre d'outils BackColor ou quelque chose d'autre changement.
  • Modifier l'icône programme chaque fois qu'une nouvelle couleur est sélectionnée. Fonctionnerait, mais il semble un peu complexe à (en ce qui concerne le développement et la performance) pour moi.

. Peut-être que je manque à l'évidence, facile à mettre en œuvre un tel bouton? Merci d'avance pour toute conseils / suggestions / inspiration)

Était-ce utile?

La solution 2

De toute évidence, il n'y a pas de solution élégante. J'ai choisi le premier, en utilisant la transparence PNG et BackColor, avec l'inconvénient d'avoir à colorer l'arrière-plan comme l'arrière-plan .png du panneau contenant. Semble être moins douloureux de cette façon.

Autres conseils

Vous pouvez facilement remplacer la méthode OnPaint et dessiner un rectangle avec une couleur que vous désirez.

Je ne vois aucune raison d'utiliser une icône, PNG ou toute autre ressource d'image pour cela. Cela semble une perte de ressources.

Il suffit de tirer les boîtes de code, le dessin des couleurs qui font actuellement partie de la liste des couleurs du contrôle. Idéalement, votre commande permettra à l'appelant d'ajouter leurs propres couleurs. Et il ne nécessitera pas bidouiller avec des images.

Je viens d'utiliser un zone de liste déroulante owner-draw quand je l'ai fait , mais je dessinais une boîte de couleur que je décris. Très facile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top