在XAML中绑定到List<Color>。

问题描述 投票:0回答:1

我目前正在创建一个可以渲染SVG的控件。作为控件的一部分,颜色可以由控件的消费者来定义。

以前,我们有这样的东西。

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

现在这很好用,"Blah "会被渲染成红色和绿色。然而,2种颜色的方法显然是令人难以置信的限制。我希望更新我们的控件,使其表现出类似这样的效果。

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

为了达到这个目的,我添加了一个名为Color[]类型的DependencyProperty。但是当我编译XAML时,我得到以下错误。

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

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

  1. 我如何将我的字符串列表转换为Color列表?
  2. 我如何在XAML中实例化一个Color值的列表来传递给Colours属性?

非常感谢 :)

wpf xaml wpf-controls
1个回答
0
投票

A Color[] 属性只能设置为 Color[] 值,除非您定义了一个 变流器 转换成 string 的XAML中,到一个 Color[].

否则,这应该是工作。

<local:CustomControl>
    <local:CustomControl.Colours>
        <x:Array Type="Color">
            <Color>Red</Color>
            <Color>Green</Color>
        </x:Array>
    </local:CustomControl.Colours>
</local:CustomControl>
© www.soinside.com 2019 - 2024. All rights reserved.