我正在尝试更改复选框文本的颜色,但它不起作用。这是我尝试过的:
<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>
为什么不起作用,我可以用什么代替?
您可以按照默认的 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>