如何在 WPF 中设置复选框的背景颜色

Posted

技术标签:

【中文标题】如何在 WPF 中设置复选框的背景颜色【英文标题】:How to set BackColor of a CheckBox in WPF 【发布时间】:2015-03-23 22:26:13 【问题描述】:

在WinForm中我们可以设置CheckBox的BackColor

如何在 WPF 中执行此操作?我试试

<CheckBox Content="CheckBox" Background="Red"/>

但这只会改变矩形边框的颜色

我也试试

<CheckBox>
    <TextBlock Text="CheckBox" Background="Red"/>
</CheckBox>

但这只会改变文本背景颜色,不包括矩形

=======

感谢大家的解决方案。我认为最简单的方法对我有用:)

【问题讨论】:

How to set the background color of a checkbox's content by binding in WPF的可能重复 【参考方案1】:

如果您对面板进行一些实验,您就会成功:

<Grid Background="Red" HorizontalAlignment="Left">
  <CheckBox Content="test" />
</Grid>

非常接近您想要的。 自己试过了;-)

【讨论】:

【参考方案2】:
<Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <CheckBox FlowDirection="RightToLeft" background="Red"
                          IsChecked="False" />
                <Border Grid.Column="1"
                        Margin="20 0 0 0"
                        HorizontalAlignment="Left"
                        VerticalAlignment="Center"
                        Background="LightGray">
                    <TextBlock HorizontalAlignment="Left"
                               Foreground="Black"
                               Style="StaticResource RegularTextblock"
                               Text="Checkbox1" />
                </Border>
            </Grid>

【讨论】:

【参考方案3】:

你要求的太少了。使用 Blend 我为 CheckBox 创建了一个相关的样式。

代码太大。所以不允许显示。这是馅饼link

对于Background,有一个网格markGrid。我添加了BackgroundTemplateBinding 来强制CheckBox 更改颜色。缺点是如果背景很暗,Path 颜色会很模糊。

【讨论】:

以上是关于如何在 WPF 中设置复选框的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在卡片背景中设置多种不同的颜色

如何在 TTTAtributedLabel 中设置范围的背景颜色

如何在html中设置网页背景颜色

如何在OpenGL中设置背景颜色

如何在所有场景中设置导航栏背景颜色

如何在 NavigationView 中设置列​​表的背景颜色