如何根据xaml中的windows phone主题选择背景颜色

时间:2013-04-17 06:05:46

标签: silverlight xaml colors windows-phone-8 themes

我的列表框项目上有网格,我想根据浅色或深色主题选择背景颜色。

例如,如果我在浅色主题中,我的网格的背景颜色将为红色,如果我在黑暗中,颜色将为蓝色。我怎么能在Xaml中做到这一点?

..................
   <Grid Background="#3F0E0D0D"> //in this case is fix for both themes...
.................
    </grid>
...............

2 个答案:

答案 0 :(得分:1)

您可以通过手机轻松获取主题。

例如,您可以执行以下操作:

 void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            Visibility darkBackgroundVisibility = (Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"];
            if (darkBackgroundVisibility == Visibility.Visible)
            {
                //theme is dark
                //change grind background
            }
            else 
            {
                //theme is light
            }                
        }

如果您使用OnNavigatedTo事件或Application_Launching和更好,那就更好了 Application_Activated

答案 1 :(得分:0)

您不能直接在XAML中执行此操作,因为这是硬编码的。而是给你的网格一个名字:

<Grid x:Name="MainGrid" Background="#3F0E0D0D"/>
...

然后在你的代码中检查主题(如@radoslaf所示)并调用:

if(isDark)
   MainGrid.Background=.... ; // whatever color is needed
else
   MainGrid.Background=.... ; // whatever color is needed