【问题标题】:How to Change the Color of Application Bar Buttons when Pressed按下时如何更改应用程序栏按钮的颜色
【发布时间】:2013-09-05 10:04:57
【问题描述】:

一个有趣的问题,我想知道是否可以为 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);
}

【问题讨论】:

    标签: c# windows-phone-8 application-bar


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 有趣,但很有帮助。
    • 尊重你的发现,我从来没有想过这个。
    • 谢谢,很有帮助。
    • 非常尊重您的解决方案,而不是一个明显的解决方案。
    • ApplicationBar 没有 Foreground 属性:/ 只有 ForegrounColor
    猜你喜欢
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    相关资源
    最近更新 更多