Для изменения цвета флажка Foreground
и Background
необходимо обновить его шаблон.Вы можете сделать это, щелкнув правой кнопкой мыши на вашем флажке визуального дизайнера, затем нажмите Редактировать шаблон > Редактировать копию .Это создаст шаблон по умолчанию для CheckBox
.(Вы можете проверить весь шаблон здесь )
Этот шаблон имеет все визуальные состояния для флажка.Вам нужно будет переопределить визуальное состояние, которое вам нужно.Например, вы делаете что-то подобное в состояние "UncheckedNormal"
.
<VisualState x:Name="UncheckedNormal">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="NormalRectangle"
Storyboard.TargetProperty="Fill">
<DiscreteObjectKeyFrame KeyTime="0" Value="Your Fill Color here for only check part" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="NormalRectangle"
Storyboard.TargetProperty="Stroke">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightBaseHighBrush}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
Storyboard.TargetProperty="Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="Your foreground color here" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="Your background color here" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
Это также может быть написано на C #, но это слишком сложно, и редактирование стилей в XAML является рекомендуемым способом стилизации.
Надеюсь, это поможет.Пожалуйста, не стесняйтесь добавлять любые вопросы, которые могут у вас возникнуть.