2013-08-28 4 views
3

Интересный вопрос: мне было интересно, можно ли пометить кнопки панели приложений в Windows Phone 8, чтобы использовать другой цвет, отличный от текущего цвета акцента, в качестве фона при нажатии. В настоящее время я создаю свою панель приложений в коде в моем тестовом приложении. Есть ли какие-либо предложения о том, как это сделать? Я еще не нашел ресурс в Интернете. По сути, у меня сейчас есть очень простая панель приложений для тестирования.Как изменить цвет кнопок панели приложений при нажатии

MainPage.xaml.cs

private void BuildLocalizedApplicationBar() 
{ 
    // Set the page's ApplicationBar to a new instance of ApplicationBar. 
    ApplicationBar = new ApplicationBar(); 

    // Create a new button and set the text value to the localized string from AppResources. 
    ApplicationBarIconButton newButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/new.png", UriKind.Relative)); 
    newButton.Text = "new"; 
    newButton.Click += newButton_Click; 
    ApplicationBar.Buttons.Add(newButton); 
} 

ответ

9

Если вы установите цвет переднего плана на ApplicationBar на что-то вроде #FFFEFEFE для белого и # FF010101 для черного в ApplicationBarIconButtons не будут использовать AccentBrush, когда они прижаты, они будут использовать заданный цвет переднего плана ApplicationBar!

Мне потребовалось несколько часов, чтобы найти решение этой проблемы, но это имеет смысл: Microsoft использует белые (#FFFFFFFF) и черные (# 00000000) для своей темной и легкой темы. В этом случае ApplicationBar использует AccentBrush, и если для Foreground задан другой цвет, он использует определенный.

Так что вам просто нужно добавить следующую строку (белый):

ApplicationBar.Foreground = new SolidColorBrush(Color.FromArgb(255, 254, 254, 254)); 
+0

Интересный, но очень полезно. – Matthew

+1

Уважайте это, я бы никогда не подумал об этом. –

+0

Спасибо, очень полезно. –

Смежные вопросы