如何在通用Windows平台中更改CheckBox控件的默认样式?

时间:2016-06-16 07:35:22

标签: xaml win-universal-app windows-10 uwp

我不知道如何更改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"  />

在下图中,我提到了我需要的复选框样式。

enter image description here

1 个答案:

答案 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>

示例图片:

enter image description here

另请注意,您可能还需要编辑上述其他视觉状态 - 这取决于您的需要。