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);
}
4

1 回答 1

9

如果您将 ApplicationBar 的 Foreground 设置为类似于白色的 #FFFEFEFE 和黑色的 #FF010101,ApplicationBarIconButtons 在按下时将不会使用 AccentBrush,它们将使用 ApplicationBar 定义的前景色!

我花了几个小时才找到解决这个问题的方法,但它是有道理的:微软使用白色(#FFFFFFFF)和黑色(#00000000)作为他们的深色和浅色主题。在这种情况下,ApplicationBar 使用 AccentBrush,如果 Foreground 设置为不同的颜色,它使用定义的颜色。

所以你只需要添加以下行(白色):

ApplicationBar.Foreground = new SolidColorBrush(Color.FromArgb(255, 254, 254, 254));
于 2013-09-05T02:04:57.057 回答