ThemeManager.ToLightTheme()匹配应用程序栏

时间:2014-01-16 13:45:52

标签: c# windows-phone-8

我尝试使用默认的灯光主题创建应用程序但将应用程序栏背景设置为黄色,因此我从NuGet下载了PhoneThemeManager。这是我的代码:

ThemeManager.ToLightTheme();
ApplicationBar = new ApplicationBar();
ApplicationBar.Background = Colors.Yellow;

由于某些原因,应用程序栏仍然是白色的,任何人都可以看到我做错了吗?

4 个答案:

答案 0 :(得分:1)

要保持应用栏的原始风格:

ThemeManager.OverrideOptions = ThemeManagerOverrideOptions.SystemTrayColors;
ThemeManager.ToLightTheme();

之后,您将能够从代码或xaml更改背景颜色。

答案 1 :(得分:0)

使用此功能可以帮助您:

ThemeManager.ToLightTheme();
ApplicationBar = new ApplicationBar();
ApplicationBar.Background =  Color.FromArgb(0xFF, R, G, B);

将r,g,b值设为黄色

答案 2 :(得分:0)

注意到它是BackgroundColor;

你的方法是完全正确的:

ApplicationBar.BackgroundColor = Colors.Yellow;

对于RGB,它应该是这样的:

ApplicationBar.BackgroundColor = Color.FromArgb(0xFF, 246, 254, 64); 

如果你有HTML颜色,你可以做::

 string htmlColor = "#f6fe40";
 ApplicationBar.BackgroundColor = Color.FromArgb(255,
                    Convert.ToByte(htmlColor.Substring(1, 2), 16),
                    Convert.ToByte(htmlColor.Substring(3, 2), 16),
                    Convert.ToByte(htmlColor.Substring(5, 2), 16)
                    );

修改

看看我在Theme Manager的源文件中找到了:

    Colors system trays appropriately and also any set ApplicationBar
    instances. Will not theme ApplicationBar instances that are
    created after the page's Navigated event or that are created and
    not set immediately.

所以请尝试这样的事情(例如)

void MainPage_Loaded(object sender, RoutedEventArgs e)
        {         
            ThemeManager.ToLightTheme();
            ApplicationBar.BackgroundColor = Colors.Yellow;
        }

答案 3 :(得分:0)

希望这对我有用,

ThemeManager.OverrideOptions = ThemeManagerOverrideOptions.None; ThemeManager.ToLightTheme();