Considérez les éléments suivants: LinearGadientBrush
, 'A'. Normalement, si vous spécifiez ce pinceau comme arrière-plan d'un rectangle, il remplit toute la zone avec le dégradé entier, quelle que soit la taille. (Voir B).Est-il possible de ne restituer qu'un pourcentage d'un GradientBrush?
Nous essayons de dire 'Pour ce contrôle particulier, n'utilisons que les premiers xx% du pinceau pour le remplissage' afin que nous puissions obtenir un remplissage en gradient basé sur le pourcentage, comme dans 'C'.
Note: Nous savons que nous allons être responsables de quel pourcentage de montrer car il n'y a aucun moyen pour le système de calculer automatiquement ce pourcentage représente.
La façon dont nous faisons actuellement ceci est montrée dans 'D'. Nous définissons un rectangle à 100% de la taille dont nous avons besoin (donc le remplissage est de 100%), puis placez-le dans un autre contrôle et alignez-le à gauche. Nous définissons ensuite le contrôle externe ClipsToBounds
sur true et définissons sa largeur sur le pourcentage souhaité de la largeur du rectangle interne. (Voir D) Cette approche fonctionne, mais ajoute des éléments supplémentaires dans l'arbre visuel que nous essayons d'éliminer si possible.
Close, mais il y a un problème ici. Puisque StartPoint et EndPoint sont des propriétés de la brosse elle-même, vous auriez besoin d'une instance de la brosse par valeur rendue. Pourtant, votant pour l'info, même si ce n'est pas un ajustement exact, car il m'a conduit à la réponse que je viens de poster, qui utilise MappingMode dans le même sens. – MarqueIV