【问题标题】:WP8 Change the color behind the application barWP8 更改应用栏后面的颜色
【发布时间】:2013-07-15 18:32:28
【问题描述】:

我正在编写一个 WP8 应用程序,它将手机上的颜色主题覆盖为始终为白色。现在,在人们因为这个决定而抹黑我之前,该应用程序本身应该是一个类似应用程序的信使,而白色背景只是让一切更容易阅读。将来我确实希望人们能够在黑色或白色之间进行选择,以防电池寿命很重要,但我需要先克服这个障碍。

目前的问题是,即使在覆盖主题颜色之后,应用程序栏后面的颜色仍然拒绝更改。我不是在谈论应用程序栏的背景颜色,而是在应用程序栏后面绘制的矩形,因为它被动画从屏幕底部向上弹出。它非常明显,即使只出现大约一秒钟也很烦人。

我知道一定有办法做到这一点,因为 Office、Google Mail 和 Skype 等应用程序都覆盖了颜色主题并实现了白色主题,而且它们没有同样的问题。

如果有人可以提供帮助,那就太好了!

【问题讨论】:

  • 我没有这个问题,在我自己的应用程序中。你是如何设置背景的?
  • 我正在通过资源合并来更改背景颜色以覆盖所有默认主题颜色。我也试过 this.Background = new System.Windows.Media.SolidColorBrush(Colors.White);但这也不起作用。仅当我将系统主题设置为黑色时,此问题才可见。
  • 我有一张图片作为我的手机应用程序页面的背景,也许这就是为什么它没有为我显示默认主题颜色。
  • 我找到了解决我的问题的方法,尽管它仍然是一种方法。我可以将应用栏的不透明度设置为 0.99(以确保栏的颜色非常接近我想要的),然后只需在页面底部添加一个等于应用栏高度的边距。
  • 好吧。这不是一个真正的黑客。那是一个解决方案。 ;) 是的,这就是为什么我没有任何愚蠢的背景颜色。我只是没想到。对不起。 ^^ 你应该把它写成你自己问题的答案(如果那里没有任何重复的话)。

标签: c# user-interface windows-phone-8


【解决方案1】:

我找到了一个解决方案,但这不是一个很好的解决方案。如果有人找到更好的解决方案,请告诉我。

我通过将应用程序栏不透明度设置为接近 1 而不是 1(我将其设置为 0.99)解决了这个问题。这将告诉窗口不要重新缩放窗口(这是黑色背景的原因)。

然后我将该页面的下边距设置为应用程序栏的高度。

这里是任何感兴趣的人的代码:

 private void panoramaMain_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
    Panorama p = (Panorama) sender;
    if(p.SelectedIndex == 1) {
       messageList.Margin = new Thickness(0, 0, 0, ApplicationBar.DefaultSize);
       ApplicationBar.IsVisible = true;
    } else {
       messageList.Margin = new Thickness(0, 0, 0, 0);
       ApplicationBar.IsVisible = false;
    }
 }

【讨论】:

    猜你喜欢
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多