Изменить цвет фона AppBarButtoon

1

в С# Windows Phone 8.1, я создаю AppBarButton с этим кодом XAML:

<AppBarButton x:Name="btnMore" Icon="More" Foreground="White"  IsEnabled="False" Label="More" Grid.Row="1" VerticalAlignment="Top" FontSize="18" Click="AppBarButton_Click" />

в темной теме телефона все в порядке:

Изображение 174551

но в теме LIGHT, цвет backcolor и font - черный:

Изображение 174551

Я попытался установить Background и BorderBrush для этой проблемы, но ничего не меняется, все еще в проходе Light Theme и круге черный (даже если кнопка включена)

<AppBarButton x:Name="btnMore"  Icon="More" Foreground="White"  IsEnabled="False" Label="More" Grid.Row="1" VerticalAlignment="Top" FontSize="18" Click="AppBarButton_Click" Background="White" BorderBrush="White" />

как я могу это решить?

  • 0
    Взгляните на это , однако, оно немного сложнее, включает в себя повторную установку AppBarButton.
Теги:
windows-phone-8.1

2 ответа

2

Установка RequestedTheme="Dark" на вашем AppBarButton заставит его быть белым независимо от выбранной темы.


Почему вы устанавливаете Foreground="White" на кнопку панели приложений? Кнопка панели приложения автоматически отрегулирует свои цвета в зависимости от выбранной темной/темной темы. Похоже, что вы вынудили цвет фона страницы черным, а цвет текста переднего плана - белым, поэтому, когда кнопка панели приложений меняет свои цвета, она больше не соответствует фону. Если вы хотите заставить приложение использовать только темную тему, тогда установите RequestedTheme="Dark" на любом из ваших Application, Page или даже AppBarButton (в зависимости от того, какую область действия вы хотите повлиять).

  • 1
    Любой жестко заданный цвет - это красный флаг для проблем с тематикой. Также тестируйте с режимами высокой контрастности. Если вам нужны нестандартные цвета помимо выбора RequestedTheme, поместите их в ThemeDictionary, чтобы вы могли предоставить соответствующие цвета для различных тем. Для режимов высокой контрастности вы обычно хотите использовать системный цвет по умолчанию.
0

Ваша кнопка, скорее всего, находится внутри CommandBar. Перейдите в CommandBar и установите Foreground для любого цвета, который вам нравится. Это должно решить вашу проблему. Это сработало для меня.

  • 0
    AppBar является системным интерфейсом и не позволяет управлять отдельными цветами кнопок. Если бы кнопка RMT находилась на панели приложения, цвет переднего плана кнопки был бы проигнорирован, и эта проблема не возникла бы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню