WinUI3 CheckBox 内容样式

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

我正在尝试更改复选框文本的颜色,但它不起作用。这是我尝试过的:

<CheckBox x:Name="OptionCheckBox"
          Foreground="#FFFFFFF"
          Content="PDF">
    <CheckBox.Resources>
        <Style TargetType="CheckBox">
            <Setter Property="Foreground"
                    Value="Blue" />
            <Setter Property="FontSize"
                    Value="16" />
            <Setter Property="Padding"
                    Value="5" />
            <Setter Property="HorizontalAlignment"
                    Value="Left" />
        </Style>
    </CheckBox.Resources>
</CheckBox>

为什么不起作用,我可以用什么代替?

uwp winrt-xaml winui-3
1个回答
0
投票

您可以按照默认的 WinUI3 控件样式文件在哪里?中找到默认样式。阅读 generic.xaml,前景仅由 VisualStateManager 管理,因此样式中的画笔集将被覆盖。我认为Faywang对UWP的解释在 UWP 中无法设置复选框内容颜色 也适用于 WinUI。

也就是说,如果你不介意修复Brush,最简单的解决办法就是在Style中定义一个ContentTemplate,直接设置TextBlock的Foreground。

<Style TargetType="CheckBox">
    ...
    <Setter Property="ContentTemplate">
        <Setter.Value>
            <DataTemplate>
                <TextBlock Foreground="Blue"
                           Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}"/>                             
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>
© www.soinside.com 2019 - 2024. All rights reserved.