2008-12-25 7 views
1
<degrafa:LinearGradientFill id="bluedream"> 
     <degrafa:GradientStop color="#6ab5d0"/> 
     <degrafa:GradientStop color="#388aae"/> 
</degrafa:LinearGradientFill> 

<degrafa:GeometryComposition graphicsTarget="{[bgCanvas]}"> 
     <degrafa:RoundedRectangle id="color_preset" fill="{bluedream}"/> 
</degrafa:GeometryComposition> 

J'ai problème avec le code degrafa que j'ai défini un ensemble de différents gradients pour color_preset.fill être un changement dynamique lorsque l'utilisateur de sélectionner la couleur différente dans la liste déroulante.changeur de couleur Degrafa

J'ai remplacé fill="{bluedream}" par fill="using_variable" et conduit à un message compilé d'erreur: Initialisateur pour 'fill': les valeurs de type com.degrafa.core.IGraphicsFill ne peuvent pas être représentées dans le texte.

Existe-t-il une solution pour utiliser ce code comme changeur de couleur?

Répondre

0

La propriété fill de votre exemple pointe vers LinearGradientFill avec l'ID "bluedream". Vous pouvez remplacer le remplissage avec un gradient différent (ou remplissage solide ou autre) ou changer les couleurs du dégradé se remplissent:

<degrafa:LinearGradientFill id="bluedream"> 
    <degrafa:GradientStop color="{your_combobox.selectedItem}"/> 
    <degrafa:GradientStop color="{your_other_combobox.selectedItem}"/> 
</degrafa:LinearGradientFill> 

<degrafa:GeometryComposition graphicsTarget="{[bgCanvas]}"> 
    <degrafa:RoundedRectangle id="color_preset" fill="{bluedream}"/> 
</degrafa:GeometryComposition> 

Je n'ai pas couru ce code, mais cela devrait fonctionner. L'idée est de changer la couleur du GradientStop avec l'élément selectedItem de votre dropdown (à condition qu'il s'agisse d'une chaîne). Cet exemple fait quelque chose de très similaire, mais avec un sélecteur de couleur au lieu d'une liste déroulante: http://degrafa.org/source/CS4IconPreviewer/CS4IconPreviewer.html