1

リストボックス項目にグリッドがあり、明るいテーマまたは暗いテーマに従って背景色を選択したいと考えています。

たとえば、明るいテーマの場合、グリッドの背景色は赤になり、暗いテーマの場合、色は青になります。Xaml でそれを行うにはどうすればよいですか?

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

2 に答える 2

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
            }                
        }

OnNavigatedToevent またはApplication_Launchingand を使用するとさらに良いApplication_Activated

于 2013-04-17T06:49:30.103 に答える
0

これはハードコーディングされているため、XAML で直接行うことはできません。代わりに、グリッドに名前を付けます。

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

次に、コードでテーマを確認し(@radoslafが示したように)、呼び出します:

if(isDark)
   MainGrid.Background=.... ; // whatever color is needed
else
   MainGrid.Background=.... ; // whatever color is needed
于 2013-04-17T11:52:15.510 に答える