我不知道如何更改Checkbox的默认颜色。我将此行编码为Checkbox
<CheckBox x:Name="chkRememberme" Foreground="Gray" Grid.Row="4" Background="Transparent" IsChecked="False" TabIndex="3" HorizontalAlignment="Center" VerticalAlignment="Top" Background="Blue" Margin="0,2,0,0" />
在下图中,我提到了我需要的复选框样式。
答案 0 :(得分:3)
打开设计器窗口,右键单击 CheckBox ,然后选择编辑模板 - &gt; 编辑副本(或在Blend中执行相同操作)。这应该在您的资源中创建默认样式(您也可以找到样式here at MSDN)。
在风格中你会找到你想要的一切。您正在寻找的背景颜色由VisualStateManager更改 - 编辑合适的视觉状态,它应该工作。示例 - 将 NormalRectangle.Fill 属性的值更改为SystemControlBackgroundBaseLowBrush
:
<VisualState x:Name="CheckedNormal">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="NormalRectangle">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlBackgroundBaseLowBrush}"/>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation Duration="0" To="{ThemeResource CheckBoxCheckedStrokeThickness}" Storyboard.TargetProperty="StrokeThickness" Storyboard.TargetName="NormalRectangle"/>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Stroke" Storyboard.TargetName="NormalRectangle">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltTransparentBrush}"/>
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="CheckGlyph"/>
</Storyboard>
</VisualState>
示例图片:
另请注意,您可能还需要编辑上述其他视觉状态 - 这取决于您的需要。