使用 BoolToObjectConverter 设置 Color 属性

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

我想通过布尔属性IsCurrentPage设置背景颜色。 我使用社区工具包BoolToObjectConverter,就像这样:

<ResourceDictionary>
    <toolkit:BoolToObjectConverter x:Key="BoolToColorConverter" TrueObject="Colors.Red" FalseObject="Colors.Blue"/>
</ResourceDictionary>

在我的实现中,它看起来是这样的:

<syncfusion:SfChip Text="{Binding IsCurrentPage, Converter={StaticResource BoolToColorConverter}}" 
                   BackgroundColor="{Binding IsCurrentPage, Converter={StaticResource BoolToColorConverter}}" 
                   TextColor="Black"/>

按钮上的文字正确。 (例如“颜色.红色”) 但背景颜色始终为白色(默认)。 我也尝试了“红色”而不是“Colors.Red”。

为什么背景颜色设置不正确?

maui syncfusion maui-community-toolkit
1个回答
0
投票

您正在传递

"Colors.Red"
"Colors.Blue"
,它们属于
string
类型,而不是本例中的
Color
对象。

为了传递

Colors.Red
Colors.Blue
对象,请尝试以下操作:

<ResourceDictionary>
    <toolkit:BoolToObjectConverter
        x:Key="BoolToColorConverter"
        TrueObject="{x:Static Colors.Red}"
        FalseObject="{x:Static Colors.Blue}"/>
</ResourceDictionary>

替代方案:

<ResourceDictionary>
    <toolkit:BoolToObjectConverter x:Key="BoolToColorConverter">
        <toolkit:BoolToObjectConverter.TrueObject>
            <Color>Red</Color>
        </toolkit:BoolToObjectConverter.TrueObject>
        <toolkit:BoolToObjectConverter.FalseObject>
            <Color>Blue</Color>
        </toolkit:BoolToObjectConverter.FalseObject>
    </toolkit:BoolToObjectConverter>
</ResourceDictionary>
© www.soinside.com 2019 - 2024. All rights reserved.