c# - 如何在按下时更改应用程序栏按钮的颜色

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

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

最佳答案

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

我花了几个小时才找到该问题的解决方案,但它有一定的道理:Microsoft 使用白色 (#FFFFFFFF) 和黑色 (#00000000) 作为其深色和浅色主题。在这种情况下,ApplicationBar 使用 AccentBrush,如果前景设置为不同的颜色,它会使用定义的颜色。

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

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

关于c# - 如何在按下时更改应用程序栏按钮的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18479826/

相关文章:

c# - 使用带有 protobuf-net 异常的代理项序列化 List<T>

javascript - 使用 HTML/JavaScript/Apache Cordova 在 Windows Phone 8 上进行页面导航

c# - 使用 Caliburn.Micro 附加到多个事件

wpf - 正确的 MVVM 设计模式 - ViewModel 和 DataContext

windows-phone-7 - 更改浅色主题中的应用程序栏图标颜色 - Windows Phone 7

c# - 创建显示更新通知的 NuGet 包

c# - 索引超出了位图数组的范围

c# - 以编程方式创建 'SharePoint Solution'