You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS平台下DataTrigger无法修改Rectangle背景颜色问题

Xamarin.Forms中Rectangle的DataTrigger在iOS上无法修改BackgroundColor问题

我在XAML中定义了一个Rectangle,希望通过DataTrigger根据视图模型里的可空布尔值Cancelled(bool?)调整其背景色。初始代码如下:

<Rectangle Grid.Row="0" Grid.Column="0" BackgroundColor="#00FF00">
    <Rectangle.Triggers>
        <DataTrigger TargetType="Rectangle" Binding="{Binding Cancelled}" Value="True">
            <Setter Property="BackgroundColor" Value="#FF0000" />
        </DataTrigger>
    </Rectangle.Triggers>
</Rectangle>

这段代码在Android上可正常运行,但在iOS上颜色始终为#00FF00。我已确认Cancelled的值确实被设置为true,且该绑定可用于其他控件控制可见性,例如:

<Label IsVisible="{Binding Cancelled}" Text="Canceled" />

我尝试了将触发器放在Style中的写法:

<Rectangle Grid.Row="0" Column="0">
    <Rectangle.Style>
        <Style TargetType="Rectangle">
            <Style.Triggers>
                <DataTrigger TargetType="Rectangle" Binding="{Binding Cancelled}" Value="{x:Null}">
                    <Setter Property="BackgroundColor" Value="#0000FF" />
                </DataTrigger>
                <DataTrigger TargetType="Rectangle" Binding="{Binding Cancelled}" Value="False">
                    <Setter Property="BackgroundColor" Value="#00FF00" />
                </DataTrigger>
                <DataTrigger TargetType="Rectangle" Binding="{Binding Cancelled}" Value="True">
                    <Setter Property="BackgroundColor" Value="#FF0000" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Rectangle.Style>
</Rectangle>

但iOS上颜色仍始终为#00FF00。该问题仅影响BackgroundColor属性,比如修改HeightRequest的触发器可正常工作:

<Rectangle.Triggers>
    <DataTrigger TargetType="Rectangle" Binding="{Binding Cancelled}" Value="True">
        <Setter Property="HeightRequest" Value="500" />
    </DataTrigger>
</Rectangle.Triggers>

我尝试使用Background替代BackgroundColor,但问题依旧。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:22:04