绑定到 XAML 中的列表<Color>

Binding to List<Color> in XAML

我目前正在创建一个将呈现 SVG 的控件。作为控件的一部分,颜色可以由控件的使用者定义。

以前,我们有类似的东西;

<CustomControl Template="{StaticResource Blah}" PrimaryColour="Red" SecondaryColour="Green" />

现在效果很好,'Blah' 将呈现为红色和绿色。然而,2 种颜色的方法显然非常有限。我希望更新我们的控件以实现类似这样的行为;

<CustomControl Template="{StaticResource Blah}" Colours="Red,Green" />

为了实现这一点,我添加了一个名为 Colors,类型为 Color[] 的 DependencyProperty。但是当我编译 XAML;

时出现以下错误

"The TypeConverter for "Color[]" 不支持从字符串转换。"

我明白为什么会这样,但我想知道的是;

  1. 如何将我的字符串列表转换为颜色列表?
  2. 如何实例化 XAML 中的颜色值列表以传递给颜色 属性?

非常感谢! :)

A Color[] 属性 只能设置为 Color[] 值,除非您定义一个 type converterstring 转换为 [=20] =] 到 Color[]

否则这应该有效:

<local:CustomControl>
    <local:CustomControl.Colours>
        <x:Array Type="Color">
            <Color>Red</Color>
            <Color>Green</Color>
        </x:Array>
    </local:CustomControl.Colours>
</local:CustomControl>