.net maui 复选框复选标记颜色

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

我的 XAML 中有以下检查

<StackLayout Orientation="Horizontal" VerticalOptions="Center" Spacing="15" BackgroundColor="Yellow">
    <CheckBox IsChecked="{Binding SuperUser , Mode=TwoWay}" Color="White" BackgroundColor="Green" />
    <Label Style="{StaticResource CheckBoxText}" Margin="0,0,0,0" Text="{x:Static strings:Strings.config_super_user}"/>
</StackLayout>

结果几乎就是我们想要的,如下所示:

enter image description here

因此,通过设置复选框的背景颜色,我们可以影响复选标记的颜色。 我面临的挑战是复选框周围的所有额外背景颜色(超出复选框“颜色”区域的绿色)。 知道如何摆脱它吗?

c# xaml checkbox maui
1个回答
0
投票

您可以完全构建自己的

CheckBox
外观,只需将原始设置设置为
Opacity=0
,然后在其下方绘制自己的外观。这将使您完全控制背景、复选标记形状、颜色等。

<Grid HeightRequest="32" WidthRequest="32">
    <Frame
        BackgroundColor="Transparent"
        BorderColor="Green"
        CornerRadius="5"
        HeightRequest="20"
        HorizontalOptions="Center"
        VerticalOptions="Center"
        WidthRequest="20">
        <Frame.Triggers>
            <DataTrigger Binding="{Binding IsChecked, Source={x:Reference checkBox}}" TargetType="Frame" Value="True">
                <Setter Property="BackgroundColor" Value="Green" />
            </DataTrigger>
        </Frame.Triggers>
    </Frame>
    <Path
        Data="M 10 16 l 4 4 l 6 -6"
        IsVisible="{Binding IsChecked, Source={x:Reference checkBox}}"
        Stroke="White" />
    <CheckBox x:Name="checkBox" Opacity="0" />
</Grid>
© www.soinside.com 2019 - 2024. All rights reserved.