我的 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>
结果几乎就是我们想要的,如下所示:
因此,通过设置复选框的背景颜色,我们可以影响复选标记的颜色。 我面临的挑战是复选框周围的所有额外背景颜色(超出复选框“颜色”区域的绿色)。 知道如何摆脱它吗?
您可以完全构建自己的
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>