Как изменить фон флажка для UWP? - PullRequest
0 голосов
/ 26 июня 2018

Я не могу изменить фон флажка с помощью следующего кода, но он работает для приложения Магазина Windows (Windows 8.1).Я хочу знать, как заставить это работать для UWP?

this.checkBox.Background = new SolidColorBrush(Windows.UI.Colors.Yellow);
this.checkBox.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);

1 Ответ

0 голосов
/ 26 июня 2018

Для изменения цвета флажка 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 является рекомендуемым способом стилизации.

Надеюсь, это поможет.Пожалуйста, не стесняйтесь добавлять любые вопросы, которые могут у вас возникнуть.

...