我正在尝试更改复选框内容的颜色。如果复选框被选中,我希望颜色不会更改,但我甚至不能在XAML中更改它。<CheckBox x:Name="Checkbox" Foreground="White" Content="I agree" HorizontalAlignment="Left" Margin="50,480,0,0" VerticalAlignment="Top" Height="46" Width="938" FontFamily="Arial" Checked="Checkbox_Checked" Background="#FF009FE3" />
但是内容颜色一直显示为黑色。我的错误在哪里?听起来很简单,但是我找不到任何解决方案。我是UWP的新手,什么也不能让它更容易。
2条答案
按热度按时间z9ju0rcb1#
如果要更改复选框的前景和背景颜色,则需要更新其样式。在默认样式中,它会在不同状态(例如,未选中或选中等)下设置不同的前景和背景。您需要覆盖所需的视觉状态。例如,您可以更改“UncheckedNormal”状态下的前景和背景。
当复选框被选中时,如果要更改颜色,只需在“CheckedNormal”状态下执行类似的操作。
您可以在可视化设计器中右键单击您的CheckBox,然后单击“编辑模板-〉编辑副本”来获得完整的样式。这将创建CheckBox的默认模板。更改后的完整样式可以参考here。
另外,如果你只是想改变文本的前景,你可以简单地在checkbox中创建一个textBlock并直接设置其前景。
sbdsn5lh2#
我也在寻找这个问题的答案,但是创建一个模板的副本是一件痛苦的事情,特别是如果你想把颜色绑定到复选框的话。在我看来,只覆盖颜色要容易得多。
下面是我想出的代码:
所有可以覆盖的颜色都在此文档中,但我使用的颜色是唯一需要更改复选框颜色的颜色。https://learn.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.checkbox?view=winrt-22621