<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>
我遇到了使用degrafa代码的问题,我已经为color_preset.fill定义了一组不同的渐变,当用户在组合框中选择不同的颜色时,它会动态变化。
我将fill="{bluedream}"
替换为fill="using_variable"
并导致错误编译邮件:“填充”的初始化程序:类型com.degrafa.core.IGraphicsFill
的值无法用文本表示。
是否有使用此代码作为换色器的解决方案?
答案 0 :(得分:0)
示例中的fill属性指向ID为“bluedream”的LinearGradientFill。您可以使用不同的渐变(或实体或其他填充)替换填充或更改渐变填充本身的颜色:
<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>
我没有运行该代码,但应该可以运行。我们的想法是使用下拉列表的selectedItem更改GradientStop的颜色(假设这是一个字符串)。 此示例执行的操作非常相似,但使用颜色选择器而不是下拉列表: http://degrafa.org/source/CS4IconPreviewer/CS4IconPreviewer.html